home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / devel / eiffel / eiffel_p.z / eiffel_p / ep / ParserMEY.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-12-09  |  377.4 KB  |  10,582 lines

  1. # include    "ParserMEY.h"
  2. # include    "Errors.h"
  3.  
  4. # define    xxbool    char
  5. # define    xxtrue    1
  6. # define    xxfalse    0
  7. # define    xxEof    0
  8.  
  9. typedef struct xxsUnion {
  10.       struct xxsUnion *    xxGlobalRecoverySet;
  11.       unsigned short    xxLocalRecoverySet;
  12.     } xxtUnion, * xxtUnionPtr;
  13. typedef    long    xxtSet [4];
  14.  
  15. ParserMEY_tParsAttribute    ParserMEY_ParsAttribute;
  16.  
  17. static short    xxToken;
  18. static int    xxErrorCount;
  19. static xxbool    xxIsInitialized = xxfalse, xxIsRepairMode = xxfalse;
  20. static long    xxHorizontalSet [] [4] = {
  21.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  22.  },
  23.   { 0x00000000L, 0x00220402L, 0x00000000L, 0x00000000L,
  24.  },
  25.   { 0x00001000L, 0x00321442L, 0x90400000L, 0x00000000L,
  26.  },
  27.   { 0x00001000L, 0x00321440L, 0x90400000L, 0x00000000L,
  28.  },
  29.   { 0x00001000L, 0x00101040L, 0x90400000L, 0x00000000L,
  30.  },
  31.   { 0x00000000L, 0x00101040L, 0x90400000L, 0x00000000L,
  32.  },
  33.   { 0x00000000L, 0x00101040L, 0x90000000L, 0x00000000L,
  34.  },
  35.   { 0x00000000L, 0x00101040L, 0x10000000L, 0x00000000L,
  36.  },
  37.   { 0x00000000L, 0x00001040L, 0x10000000L, 0x00000000L,
  38.  },
  39.   { 0x00000000L, 0x00001000L, 0x10000000L, 0x00000000L,
  40.  },
  41.   { 0x00000000L, 0x00001000L, 0x00000000L, 0x00000000L,
  42.  },
  43.   { 0x7C000006L, 0x00000082L, 0x00000020L, 0x00200000L,
  44.  },
  45.   { 0x7D000006L, 0x00000080L, 0x00000020L, 0x00200000L,
  46.  },
  47.   { 0x01000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  48.  },
  49.   { 0x00C00000L, 0x00000000L, 0x00000000L, 0x00000000L,
  50.  },
  51.   { 0x7C400006L, 0x00000080L, 0x00000020L, 0x00200000L,
  52.  },
  53.   { 0x00800000L, 0x00000000L, 0x00000000L, 0x00000000L,
  54.  },
  55.   { 0x7C800006L, 0x00000080L, 0x00000020L, 0x00200000L,
  56.  },
  57.   { 0x7C000006L, 0x00000080L, 0x00000020L, 0x00200000L,
  58.  },
  59.   { 0x00000000L, 0x01A28000L, 0x20820100L, 0x00200000L,
  60.  },
  61.   { 0x00000000L, 0x01A08000L, 0x20820100L, 0x00200000L,
  62.  },
  63.   { 0x00000000L, 0x01A08400L, 0x20820100L, 0x00200000L,
  64.  },
  65.   { 0x00000000L, 0x00220400L, 0x00000000L, 0x00000000L,
  66.  },
  67.   { 0x04000000L, 0x00000000L, 0x00400000L, 0x00000000L,
  68.  },
  69.   { 0x04000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  70.  },
  71.   { 0x00000400L, 0x00000051L, 0x00040000L, 0x00200000L,
  72.  },
  73.   { 0x00000000L, 0x00000040L, 0x00000000L, 0x00000000L,
  74.  },
  75.   { 0x00000400L, 0x00000011L, 0x00040000L, 0x00200000L,
  76.  },
  77.   { 0x00000000L, 0x00000011L, 0x00040000L, 0x00200000L,
  78.  },
  79.   { 0x01000000L, 0x00000011L, 0x00040000L, 0x00200000L,
  80.  },
  81.   { 0x00404000L, 0x00000000L, 0x08000000L, 0x00000000L,
  82.  },
  83.   { 0x00400000L, 0x00000000L, 0x08000000L, 0x00000000L,
  84.  },
  85.   { 0x00000000L, 0x00000000L, 0x08000000L, 0x00000000L,
  86.  },
  87.   { 0x7C000006L, 0x00030180L, 0x0A504028L, 0x00000000L,
  88.  },
  89.   { 0x7C000006L, 0x00030180L, 0x02504028L, 0x00000000L,
  90.  },
  91.   { 0x00800000L, 0x00000011L, 0x00040000L, 0x00200000L,
  92.  },
  93.   { 0x00000000L, 0x00000001L, 0x00040000L, 0x00200000L,
  94.  },
  95.   { 0x02000006L, 0x00000000L, 0x00040000L, 0x00400000L,
  96.  },
  97.   { 0x02000006L, 0x48000005L, 0x00080000L, 0xFF800000L,
  98.  },
  99.   { 0x02000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  100.  },
  101.   { 0x02000006L, 0x00000000L, 0x00000000L, 0x00400000L,
  102.  },
  103.   { 0x02000006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  104.  },
  105.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00400000L,
  106.  },
  107.   { 0x00000004L, 0x00000000L, 0x00000000L, 0x00000000L,
  108.  },
  109.   { 0x00000002L, 0x00000000L, 0x00000000L, 0x00000000L,
  110.  },
  111.   { 0x00000006L, 0x00000000L, 0x00000000L, 0x00400000L,
  112.  },
  113.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x01000000L,
  114.  },
  115.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x02000000L,
  116.  },
  117.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00800000L,
  118.  },
  119.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x20000000L,
  120.  },
  121.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x10000000L,
  122.  },
  123.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x08000000L,
  124.  },
  125.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x04000000L,
  126.  },
  127.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x40000000L,
  128.  },
  129.   { 0x00000000L, 0x40000000L, 0x00000000L, 0x00000000L,
  130.  },
  131.   { 0x00000000L, 0x08000000L, 0x00000040L, 0x00000000L,
  132.  },
  133.   { 0x00000000L, 0x00000000L, 0x00000040L, 0x00000000L,
  134.  },
  135.   { 0x00000000L, 0x00004000L, 0x00080000L, 0x00000000L,
  136.  },
  137.   { 0x00000000L, 0x00004000L, 0x00000000L, 0x00000000L,
  138.  },
  139.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x80000000L,
  140.  },
  141.   { 0x00000000L, 0x00000004L, 0x00000000L, 0x00000000L,
  142.  },
  143.   { 0x00000006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  144.  },
  145.   { 0x00000000L, 0x00000400L, 0x80000000L, 0x00200000L,
  146.  },
  147.   { 0x00000000L, 0x00000400L, 0x00000000L, 0x00200000L,
  148.  },
  149.   { 0x01000000L, 0x00000400L, 0x00000000L, 0x00200000L,
  150.  },
  151.   { 0x00000000L, 0x00001200L, 0x00018410L, 0x00000000L,
  152.  },
  153.   { 0x00000000L, 0x00001200L, 0x00010410L, 0x00000000L,
  154.  },
  155.   { 0x00000000L, 0x00001000L, 0x00010410L, 0x00000000L,
  156.  },
  157.   { 0x00000000L, 0x00001000L, 0x00010400L, 0x00000000L,
  158.  },
  159.   { 0x00000000L, 0x00001000L, 0x00000400L, 0x00000000L,
  160.  },
  161.   { 0x00000000L, 0x00000001L, 0x00048000L, 0x00200000L,
  162.  },
  163.   { 0x00800000L, 0x00000001L, 0x00040000L, 0x00200000L,
  164.  },
  165.   { 0x00000000L, 0x04000001L, 0x00040000L, 0x00200000L,
  166.  },
  167.   { 0x00000600L, 0x01808000L, 0x20820100L, 0x00200000L,
  168.  },
  169.   { 0x00000200L, 0x00000000L, 0x00000000L, 0x00000000L,
  170.  },
  171.   { 0x00000000L, 0x01808000L, 0x20820100L, 0x00200000L,
  172.  },
  173.   { 0x00800000L, 0x01808000L, 0x20820100L, 0x00200000L,
  174.  },
  175.   { 0x00000400L, 0x00000200L, 0x00000000L, 0x00000000L,
  176.  },
  177.   { 0x00000400L, 0x00000000L, 0x00000000L, 0x00000000L,
  178.  },
  179.   { 0x01000400L, 0x00000000L, 0x00000000L, 0x00000000L,
  180.  },
  181.   { 0x00000000L, 0x10000001L, 0x00040000L, 0x00200000L,
  182.  },
  183.   { 0x00000000L, 0x10000000L, 0x00000000L, 0x00000000L,
  184.  },
  185.   { 0x00006000L, 0x00000000L, 0x00000000L, 0x00200000L,
  186.  },
  187.   { 0x00002000L, 0x00000000L, 0x00000000L, 0x00000000L,
  188.  },
  189.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00200000L,
  190.  },
  191.   { 0x01000000L, 0x00000000L, 0x00000000L, 0x00200000L,
  192.  },
  193.   { 0x00400000L, 0x00000000L, 0x00000000L, 0x00000000L,
  194.  },
  195.   { 0x00800000L, 0x00000000L, 0x00000000L, 0x00200000L,
  196.  },
  197.   { 0x00400000L, 0x03808400L, 0x24820100L, 0x00200000L,
  198.  },
  199.   { 0x00000000L, 0x00030100L, 0x02504000L, 0x00000000L,
  200.  },
  201.   { 0x00000000L, 0x00031900L, 0x02506000L, 0x00000000L,
  202.  },
  203.   { 0x00000000L, 0x00031900L, 0x02106000L, 0x00000000L,
  204.  },
  205.   { 0x00000000L, 0x00030100L, 0x02104000L, 0x00000000L,
  206.  },
  207.   { 0x00000000L, 0x00031900L, 0x02102000L, 0x00000000L,
  208.  },
  209.   { 0x00000000L, 0x00030100L, 0x02100000L, 0x00000000L,
  210.  },
  211.   { 0x00000000L, 0x00031900L, 0x00102000L, 0x00000000L,
  212.  },
  213.   { 0x00000000L, 0x00001800L, 0x00002000L, 0x00000000L,
  214.  },
  215.   { 0x00000000L, 0x00001000L, 0x00002000L, 0x00000000L,
  216.  },
  217.   { 0x00000000L, 0x00030100L, 0x00100000L, 0x00000000L,
  218.  },
  219.   { 0x00000000L, 0x00010100L, 0x00100000L, 0x00000000L,
  220.  },
  221.   { 0x01184000L, 0x004D0028L, 0x40001800L, 0x00200000L,
  222.  },
  223.   { 0x01184000L, 0x004C0028L, 0x40101800L, 0x00200000L,
  224.  },
  225.   { 0x00000000L, 0x00010000L, 0x00100000L, 0x00000000L,
  226.  },
  227.   { 0x00000000L, 0x00020000L, 0x00000000L, 0x00000000L,
  228.  },
  229.   { 0x00000000L, 0x00000000L, 0x02000000L, 0x00200000L,
  230.  },
  231.   { 0x01184000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  232.  },
  233.   { 0x00204000L, 0x00080000L, 0x00000000L, 0x00000000L,
  234.  },
  235.   { 0x00204000L, 0x00000000L, 0x00000000L, 0x00000000L,
  236.  },
  237.   { 0x00200000L, 0x00000000L, 0x00000000L, 0x00000000L,
  238.  },
  239.   { 0x00200000L, 0x00080000L, 0x00001000L, 0x00200000L,
  240.  },
  241.   { 0x00204060L, 0x00000000L, 0x00001000L, 0x00000000L,
  242.  },
  243.   { 0x7E004146L, 0x00080080L, 0x002010A0L, 0x00600000L,
  244.  },
  245.   { 0x7E004126L, 0x00080080L, 0x002010A0L, 0x00600000L,
  246.  },
  247.   { 0x00204060L, 0x00000000L, 0x00000000L, 0x00000000L,
  248.  },
  249.   { 0x7E004106L, 0x00084080L, 0x002050A0L, 0x00700000L,
  250.  },
  251.   { 0x7E004106L, 0x00084080L, 0x002010A0L, 0x00700000L,
  252.  },
  253.   { 0x7E004106L, 0x00080880L, 0x002010E0L, 0x00700000L,
  254.  },
  255.   { 0x7E004106L, 0x00080080L, 0x002010E0L, 0x00700000L,
  256.  },
  257.   { 0x7E004106L, 0x00080080L, 0x102010A0L, 0x00700000L,
  258.  },
  259.   { 0x7E004106L, 0x00080080L, 0x002010A0L, 0x00700000L,
  260.  },
  261.   { 0x7F004106L, 0x00080080L, 0x002010A0L, 0x00700000L,
  262.  },
  263.   { 0x02664006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  264.  },
  265.   { 0x7E404106L, 0x00080080L, 0x002010A0L, 0x00700000L,
  266.  },
  267.   { 0x02264006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  268.  },
  269.   { 0x02260006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  270.  },
  271.   { 0x02260006L, 0x48080004L, 0x00081000L, 0xFFA00000L,
  272.  },
  273.   { 0x02060006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  274.  },
  275.   { 0x00000000L, 0x00000000L, 0x00000000L, 0x00100000L,
  276.  },
  277.   { 0x7E004106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  278.  },
  279.   { 0x7E004106L, 0x00481080L, 0x002010A0L, 0x00700000L,
  280.  },
  281.   { 0x02664006L, 0x48000004L, 0x00080002L, 0xFFA00000L,
  282.  },
  283.   { 0x7E404106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  284.  },
  285.   { 0x7E004106L, 0x00080080L, 0x002010A2L, 0x00600000L,
  286.  },
  287.   { 0x00000000L, 0x00000001L, 0x00050000L, 0x00200000L,
  288.  },
  289.   { 0x00000000L, 0x00000001L, 0x00040010L, 0x00200000L,
  290.  },
  291.   { 0x00000000L, 0x00000001L, 0x00040400L, 0x00200000L,
  292.  },
  293.   { 0x00000000L, 0x01000000L, 0x00000000L, 0x00000000L,
  294.  },
  295.   { 0x00000000L, 0x00800000L, 0x00000000L, 0x00000000L,
  296.  },
  297.   { 0x00000000L, 0x00008000L, 0x00000000L, 0x00000000L,
  298.  },
  299.   { 0x00000000L, 0x00000000L, 0x20000000L, 0x00000000L,
  300.  },
  301.   { 0x00000000L, 0x00000000L, 0x00800000L, 0x00000000L,
  302.  },
  303.   { 0x00000000L, 0x00000000L, 0x00020000L, 0x00000000L,
  304.  },
  305.   { 0x00000000L, 0x00000000L, 0x00000100L, 0x00000000L,
  306.  },
  307.   { 0x00000000L, 0x03808400L, 0x24820100L, 0x00200000L,
  308.  },
  309.   { 0x00001000L, 0x00000000L, 0x00000000L, 0x00000000L,
  310.  },
  311.   { 0x00001000L, 0x00000400L, 0x00000000L, 0x00200000L,
  312.  },
  313.   { 0x00001800L, 0x03808400L, 0x24820100L, 0x00200000L,
  314.  },
  315.   { 0x00000800L, 0x00000000L, 0x00000000L, 0x00000000L,
  316.  },
  317.   { 0x00800000L, 0x03808400L, 0x24820100L, 0x00200000L,
  318.  },
  319.   { 0x7C000006L, 0x02080080L, 0x00001020L, 0x00200000L,
  320.  },
  321.   { 0x00000000L, 0x00080000L, 0x04000000L, 0x00200000L,
  322.  },
  323.   { 0x00000000L, 0x00080000L, 0x00000000L, 0x00000000L,
  324.  },
  325.   { 0x00000000L, 0x00080000L, 0x00000000L, 0x00200000L,
  326.  },
  327.   { 0x00001800L, 0x01808000L, 0x20820100L, 0x00200000L,
  328.  },
  329.   { 0x00010000L, 0x00000000L, 0x00000000L, 0x00000000L,
  330.  },
  331.   { 0x00010000L, 0x00000400L, 0x00000000L, 0x00200000L,
  332.  },
  333.   { 0x7E004106L, 0x00085088L, 0x002010A0L, 0x00600000L,
  334.  },
  335.   { 0x00000000L, 0x00005000L, 0x00000000L, 0x00000000L,
  336.  },
  337.   { 0x00000000L, 0x00002000L, 0x00000000L, 0x00000000L,
  338.  },
  339.   { 0x7E004106L, 0x00082080L, 0x002010A0L, 0x00600000L,
  340.  },
  341.   { 0x01184000L, 0x004C0028L, 0x40001840L, 0x00200000L,
  342.  },
  343.   { 0x01184000L, 0x004C4028L, 0x40001800L, 0x00200000L,
  344.  },
  345.   { 0x7E004106L, 0x00085080L, 0x402010A1L, 0x00600000L,
  346.  },
  347.   { 0x00000000L, 0x00005000L, 0x00000001L, 0x00000000L,
  348.  },
  349.   { 0x7C000006L, 0x00000080L, 0x00000061L, 0x00200000L,
  350.  },
  351.   { 0x00000000L, 0x00000000L, 0x00000001L, 0x00000000L,
  352.  },
  353.   { 0x40008000L, 0x00000000L, 0x00000000L, 0x00000000L,
  354.  },
  355.   { 0x00008000L, 0x00000000L, 0x00000000L, 0x00000000L,
  356.  },
  357.   { 0x40000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  358.  },
  359.   { 0x18008006L, 0x00000000L, 0x00000000L, 0x00000000L,
  360.  },
  361.   { 0x7C008006L, 0x00000080L, 0x00000020L, 0x00200000L,
  362.  },
  363.   { 0x7E004106L, 0x00081080L, 0x102010A6L, 0x00600000L,
  364.  },
  365.   { 0x7E004106L, 0x00080080L, 0x102010A6L, 0x00600000L,
  366.  },
  367.   { 0x7E004106L, 0x00081080L, 0x002010A6L, 0x00600000L,
  368.  },
  369.   { 0x7E004106L, 0x00080080L, 0x002010A6L, 0x00600000L,
  370.  },
  371.   { 0x00000000L, 0x00001000L, 0x00000004L, 0x00000000L,
  372.  },
  373.   { 0x01184000L, 0x004C0028L, 0x41001800L, 0x00200000L,
  374.  },
  375.   { 0x7E004106L, 0x00080080L, 0x002010A4L, 0x00600000L,
  376.  },
  377.   { 0x01184000L, 0x004C1028L, 0x40001800L, 0x00200000L,
  378.  },
  379.   { 0x7E006106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  380.  },
  381.   { 0x02862006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  382.  },
  383.   { 0x05986000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  384.  },
  385.   { 0x01186000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  386.  },
  387.   { 0x01386000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  388.  },
  389.   { 0x01384000L, 0x004C0028L, 0x40001800L, 0x00200000L,
  390.  },
  391.   { 0x04800000L, 0x00000000L, 0x00000000L, 0x00000000L,
  392.  },
  393.   { 0x01184000L, 0x004C0028L, 0x40003800L, 0x00200000L,
  394.  },
  395.   { 0x00000000L, 0x00000000L, 0x00000800L, 0x00000000L,
  396.  },
  397.   { 0x00000000L, 0x00000000L, 0x00000008L, 0x00000000L,
  398.  },
  399.   { 0x00000000L, 0x00080000L, 0x00001000L, 0x00200000L,
  400.  },
  401.   { 0x00000000L, 0x00000000L, 0x00001000L, 0x00200000L,
  402.  },
  403.   { 0x00000000L, 0x00000000L, 0x00001000L, 0x00000000L,
  404.  },
  405.   { 0x00000400L, 0x00100001L, 0x00040000L, 0x00200000L,
  406.  },
  407.   { 0x00000000L, 0x00100000L, 0x00000000L, 0x00000000L,
  408.  },
  409.   { 0x00000400L, 0x00000001L, 0x00040000L, 0x00200000L,
  410.  },
  411.   { 0x00300000L, 0x03808400L, 0x24821100L, 0x00200000L,
  412.  },
  413.   { 0x00100000L, 0x03808400L, 0x24820100L, 0x00200000L,
  414.  },
  415.   { 0x00300000L, 0x00000000L, 0x00001000L, 0x00200000L,
  416.  },
  417.   { 0x00280000L, 0x00000000L, 0x00001000L, 0x00200000L,
  418.  },
  419.   { 0x00180000L, 0x00000000L, 0x00001000L, 0x00200000L,
  420.  },
  421.   { 0x00380000L, 0x00000000L, 0x00001000L, 0x00200000L,
  422.  },
  423.   { 0x7E206106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  424.  },
  425.   { 0x00202000L, 0x00000000L, 0x00000000L, 0x00000000L,
  426.  },
  427.   { 0x00004000L, 0x00000000L, 0x00000000L, 0x00000000L,
  428.  },
  429.   { 0x7E006107L, 0x00080080L, 0x002010A0L, 0x00600000L,
  430.  },
  431.   { 0x7E004107L, 0x00080080L, 0x002010A0L, 0x00600000L,
  432.  },
  433.   { 0x7E804107L, 0x00080080L, 0x002010A0L, 0x00600000L,
  434.  },
  435.   { 0x00000001L, 0x00080000L, 0x00001000L, 0x00200000L,
  436.  },
  437.   { 0x7E064106L, 0x48080084L, 0x002810A0L, 0xFFE00000L,
  438.  },
  439.   { 0x02264006L, 0x48000004L, 0x00081000L, 0xFF800000L,
  440.  },
  441.   { 0x02264006L, 0x48080004L, 0x00080000L, 0xFF800000L,
  442.  },
  443.   { 0x7E266106L, 0x48080084L, 0x002810A0L, 0xFFE00000L,
  444.  },
  445.   { 0x02262006L, 0x48000004L, 0x00080000L, 0xFF800000L,
  446.  },
  447.   { 0x10000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  448.  },
  449.   { 0x08000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  450.  },
  451.   { 0x20000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  452.  },
  453.   { 0x7C000000L, 0x00000080L, 0x00000020L, 0x00000000L,
  454.  },
  455.   { 0x00040000L, 0x00000000L, 0x00000000L, 0x00000000L,
  456.  },
  457.   { 0x00020000L, 0x00000000L, 0x00000000L, 0x00000000L,
  458.  },
  459.   { 0x00060000L, 0x00000000L, 0x00000000L, 0x00000000L,
  460.  },
  461.   { 0x7C000006L, 0x00080080L, 0x00001020L, 0x00200000L,
  462.  },
  463.   { 0x7C000006L, 0x00000080L, 0x00000020L, 0x00000000L,
  464.  },
  465.   { 0x18000000L, 0x00000000L, 0x00000000L, 0x00000000L,
  466.  },
  467.   { 0x00000006L, 0x00000000L, 0x00000000L, 0x00000000L,
  468.  },
  469.   { 0x00000000L, 0x00000000L, 0x00000020L, 0x00000000L,
  470.  },
  471.   { 0x00000000L, 0x00000080L, 0x00000000L, 0x00000000L,
  472.  },
  473.   { 0x00000000L, 0x00000080L, 0x00000020L, 0x00000000L,
  474.  },
  475.   { 0x7E004186L, 0x00080080L, 0x002010A0L, 0x00600000L,
  476.  },
  477.   { 0x00000080L, 0x00000000L, 0x00000000L, 0x00000000L,
  478.  },
  479.   { 0x7E804106L, 0x00080080L, 0x002010A0L, 0x00600000L,
  480.  },
  481.   { 0x00006000L, 0x00000000L, 0x00000080L, 0x00200000L,
  482.  },
  483.   { 0x04000000L, 0x20000100L, 0x00000000L, 0x00000000L,
  484.  },
  485.   { 0x00000000L, 0x20000000L, 0x00000000L, 0x00000000L,
  486.  },
  487.   { 0x04000000L, 0x20000000L, 0x00000000L, 0x00000000L,
  488.  },
  489. };
  490. static unsigned char xxVerticalSet [] = {
  491.  0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80,
  492.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  493.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  494.  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00,
  495.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  496.  0x00, 0x00, 0x03, 0x1C, 0x00, 0x00, 0x03, 0x00,
  497.  0x00, 0x00, 0x00, 0x7C, 0x00, 0x03, 0x00, 0x00,
  498.  0x80, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
  499.  0x0C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00,
  500.  0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  501.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  502.  0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
  503.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  504.  0x00, 0x00, 0x80, 0x00,
  505.  
  506.  0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0xE1,
  507.  0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  508.  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
  509.  0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00,
  510.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  511.  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
  512.  0x00, 0x00, 0x00, 0xC8, 0x00, 0x01, 0x00, 0x00,
  513.  0x02, 0xCC, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC,
  514.  0x00, 0x00, 0x00, 0xC8, 0xC0, 0x00, 0x00, 0x00,
  515.  0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
  516.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  517.  0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
  518.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  519.  0x00, 0x00, 0xFE, 0x00,
  520.  
  521.  0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x27,
  522.  0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  523.  0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
  524.  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00,
  525.  0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
  526.  0x00, 0x00, 0x00, 0x24, 0x04, 0x00, 0x00, 0x00,
  527.  0x00, 0x00, 0x00, 0xF7, 0x00, 0x08, 0x54, 0x00,
  528.  0x04, 0x27, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07,
  529.  0x00, 0x00, 0x00, 0x27, 0x06, 0x00, 0x00, 0x00,
  530.  0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x00, 0xD4,
  531.  0x10, 0x00, 0x00, 0x04, 0x00, 0xD4, 0x00, 0x00,
  532.  0x04, 0x00, 0x04, 0xD4, 0x00, 0x00, 0x00, 0x00,
  533.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  534.  0x00, 0x04, 0x0F, 0x00,
  535.  
  536.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
  537.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  538.  0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
  539.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  540.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
  541.  0x08, 0x00, 0x00, 0x10, 0x00, 0x00, 0xA0, 0xA0,
  542.  0x08, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0xA0,
  543.  0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
  544.  0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x80, 0x00,
  545.  0x08, 0x00, 0x00, 0xA0, 0x00, 0x04, 0x08, 0x11,
  546.  0x00, 0x80, 0x00, 0x00, 0x00, 0x13, 0x00, 0x08,
  547.  0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
  548.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  549.  0x00, 0x00, 0x4C, 0x00,
  550.  
  551.  0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x18,
  552.  0x00, 0x00, 0x08, 0x18, 0x18, 0x00, 0x00, 0x00,
  553.  0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
  554.  0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x00,
  555.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  556.  0x00, 0x18, 0x00, 0x00, 0xF8, 0x18, 0x23, 0x23,
  557.  0x00, 0x18, 0x18, 0x5C, 0x18, 0x00, 0x00, 0x23,
  558.  0xF8, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00,
  559.  0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x21, 0x00,
  560.  0x00, 0x00, 0xF8, 0x23, 0x00, 0x00, 0x00, 0x00,
  561.  0x00, 0x00, 0x5C, 0xF8, 0x18, 0x00, 0x00, 0x00,
  562.  0xF8, 0x00, 0xF8, 0x00, 0x00, 0x18, 0x18, 0x18,
  563.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  564.  0x00, 0xF8, 0xF8, 0xE0,
  565.  
  566.  0x00, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0xFF, 0x2E,
  567.  0x00, 0x00, 0x44, 0x00, 0x00, 0xDC, 0xDC, 0x00,
  568.  0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F,
  569.  0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00,
  570.  0x00, 0xDC, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00,
  571.  0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x2D, 0x2D,
  572.  0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2D,
  573.  0x2F, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x00, 0x00,
  574.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x00,
  575.  0x00, 0x00, 0x2F, 0x2D, 0xDC, 0x00, 0x00, 0x00,
  576.  0x00, 0x00, 0x2D, 0x2F, 0x00, 0x00, 0x00, 0x00,
  577.  0x2F, 0x00, 0x2F, 0x00, 0x00, 0xED, 0x2D, 0x00,
  578.  0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC,
  579.  0xDC, 0x2F, 0x2F, 0x2E,
  580.  
  581.  0x00, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0x30, 0x09,
  582.  0x05, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0x00,
  583.  0x00, 0x38, 0x01, 0x00, 0x05, 0x00, 0x00, 0x30,
  584.  0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xB0, 0x00,
  585.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
  586.  0x02, 0x08, 0x00, 0x01, 0x38, 0x08, 0x01, 0x01,
  587.  0x02, 0x50, 0x10, 0x51, 0x10, 0x02, 0x01, 0x01,
  588.  0xB0, 0x01, 0x08, 0x01, 0x08, 0x00, 0x00, 0x01,
  589.  0x00, 0x08, 0x02, 0x11, 0x01, 0x02, 0x00, 0x00,
  590.  0x02, 0x00, 0x30, 0x01, 0x00, 0x01, 0x02, 0x01,
  591.  0x01, 0x00, 0x10, 0x38, 0x08, 0x01, 0x00, 0x02,
  592.  0x30, 0x80, 0xB0, 0x01, 0x00, 0x10, 0x10, 0x90,
  593.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  594.  0x00, 0x30, 0xBB, 0x00,
  595.  
  596.  0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC0,
  597.  0xC1, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
  598.  0x00, 0xC6, 0xC0, 0x00, 0x00, 0x08, 0x00, 0xC6,
  599.  0xC0, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x00,
  600.  0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00,
  601.  0x00, 0xC0, 0x00, 0x18, 0xE6, 0xC0, 0xC0, 0xC0,
  602.  0x00, 0xC0, 0xC0, 0xD0, 0xC0, 0x00, 0x00, 0xC0,
  603.  0xC6, 0x10, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x18,
  604.  0x00, 0xC0, 0x00, 0xD0, 0x00, 0x00, 0xC0, 0xC0,
  605.  0x00, 0x00, 0xC6, 0xC0, 0xC0, 0x18, 0x00, 0x00,
  606.  0x00, 0x00, 0xC0, 0xE6, 0xC0, 0x00, 0x00, 0x00,
  607.  0xC6, 0xC1, 0xC6, 0x00, 0x00, 0xC2, 0xC6, 0xC0,
  608.  0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
  609.  0xC0, 0xC6, 0xFE, 0xC0,
  610.  
  611.  0x00, 0x01, 0x01, 0x05, 0x05, 0x01, 0x01, 0x00,
  612.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  613.  0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
  614.  0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x01,
  615.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  616.  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  617.  0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00,
  618.  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  619.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  620.  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  621.  0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00,
  622.  0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  623.  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  624.  0x00, 0x01, 0x01, 0x00,
  625. };
  626. char *        ParserMEY_TokenName [] = {
  627. "_EndOfFile",
  628. "Character_constant",
  629. "Bit_sequence",
  630. "Integer",
  631. "Real",
  632. "Manifest_string",
  633. "Free_op",
  634. ";",
  635. ",",
  636. ":",
  637. ".",
  638. "!",
  639. "!!",
  640. "Eq",
  641. "Not_eq",
  642. "->",
  643. "..",
  644. "(",
  645. ")",
  646. "[",
  647. "]",
  648. "{",
  649. "}",
  650. "<<",
  651. ">>",
  652. ":=",
  653. "?=",
  654. "\\'",
  655. "\"",
  656. "plus",
  657. "minus",
  658. "$",
  659. "%",
  660. "div",
  661. "alias",
  662. "all",
  663. "and",
  664. "as",
  665. "BIT",
  666. "BOOLEAN",
  667. "CHARACTER",
  668. "check",
  669. "class",
  670. "creation",
  671. "Current",
  672. "debug",
  673. "deferred",
  674. "do",
  675. "DOUBLE",
  676. "else",
  677. "elseif",
  678. "end",
  679. "ensure",
  680. "expanded",
  681. "export",
  682. "external",
  683. "false",
  684. "feature",
  685. "from",
  686. "frozen",
  687. "if",
  688. "implies",
  689. "indexing",
  690. "infix",
  691. "inherit",
  692. "inspect",
  693. "INTEGER",
  694. "invariant",
  695. "is",
  696. "like",
  697. "local",
  698. "loop",
  699. "_NONE",
  700. "obsolete",
  701. "old",
  702. "once",
  703. "or",
  704. "prefix",
  705. "REAL",
  706. "redefine",
  707. "rename",
  708. "require",
  709. "rescue",
  710. "Result",
  711. "retry",
  712. "select",
  713. "separate",
  714. "STRING",
  715. "strip",
  716. "then",
  717. "true",
  718. "undefine",
  719. "unique",
  720. "until",
  721. "variant",
  722. "when",
  723. "xor",
  724. "times",
  725. "smaller",
  726. "greater",
  727. "sm_eq",
  728. "gr_eq",
  729. "idiv",
  730. "imod",
  731. "power",
  732. "not",
  733. "Id",
  734. "Comment",
  735. };
  736.  
  737. static void yyEiffel ARGS((ParserMEY_tParsAttribute * Eiffel0, xxtUnionPtr xxGlobalRecoverySet));
  738. static void yyClass_declaration ARGS((ParserMEY_tParsAttribute * Class_declaration0, xxtUnionPtr xxGlobalRecoverySet));
  739. static void yyIndexing ARGS((ParserMEY_tParsAttribute * Indexing0, xxtUnionPtr xxGlobalRecoverySet));
  740. static void yyIndex_list ARGS((ParserMEY_tParsAttribute * Index_list0, xxtUnionPtr xxGlobalRecoverySet));
  741. static void yyIndex_clause ARGS((ParserMEY_tParsAttribute * Index_clause0, xxtUnionPtr xxGlobalRecoverySet));
  742. static void yyIndex_terms ARGS((ParserMEY_tParsAttribute * Index_terms0, xxtUnionPtr xxGlobalRecoverySet));
  743. static void yyIndex_value ARGS((ParserMEY_tParsAttribute * Index_value0, xxtUnionPtr xxGlobalRecoverySet));
  744. static void yyClass_header ARGS((ParserMEY_tParsAttribute * Class_header0, xxtUnionPtr xxGlobalRecoverySet));
  745. static void yyClass_name ARGS((ParserMEY_tParsAttribute * Class_name0, xxtUnionPtr xxGlobalRecoverySet));
  746. static void yyObsolete ARGS((ParserMEY_tParsAttribute * Obsolete0, xxtUnionPtr xxGlobalRecoverySet));
  747. static void yyMessage ARGS((ParserMEY_tParsAttribute * Message0, xxtUnionPtr xxGlobalRecoverySet));
  748. static void yyFeatures ARGS((ParserMEY_tParsAttribute * Features0, xxtUnionPtr xxGlobalRecoverySet));
  749. static void yyFeature_clause ARGS((ParserMEY_tParsAttribute * Feature_clause0, xxtUnionPtr xxGlobalRecoverySet));
  750. static void yyFeature_declaration_list ARGS((ParserMEY_tParsAttribute * Feature_declaration_list0, xxtUnionPtr xxGlobalRecoverySet));
  751. static void yyFeature_declaration ARGS((ParserMEY_tParsAttribute * Feature_declaration0, xxtUnionPtr xxGlobalRecoverySet));
  752. static void yyDeclaration_body ARGS((ParserMEY_tParsAttribute * Declaration_body0, xxtUnionPtr xxGlobalRecoverySet));
  753. static void yyConstant_or_routine ARGS((ParserMEY_tParsAttribute * Constant_or_routine0, xxtUnionPtr xxGlobalRecoverySet));
  754. static void yyFeature_value ARGS((ParserMEY_tParsAttribute * Feature_value0, xxtUnionPtr xxGlobalRecoverySet));
  755. static void yyNew_feature_list ARGS((ParserMEY_tParsAttribute * New_feature_list0, xxtUnionPtr xxGlobalRecoverySet));
  756. static void yyNew_feature ARGS((ParserMEY_tParsAttribute * New_feature0, xxtUnionPtr xxGlobalRecoverySet));
  757. static void yyFeature_name ARGS((ParserMEY_tParsAttribute * Feature_name0, xxtUnionPtr xxGlobalRecoverySet));
  758. static void yyPrefix ARGS((ParserMEY_tParsAttribute * Prefix0, xxtUnionPtr xxGlobalRecoverySet));
  759. static void yyInfix ARGS((ParserMEY_tParsAttribute * Infix0, xxtUnionPtr xxGlobalRecoverySet));
  760. static void yyPrefix_operator ARGS((ParserMEY_tParsAttribute * Prefix_operator0, xxtUnionPtr xxGlobalRecoverySet));
  761. static void yyInfix_operator ARGS((ParserMEY_tParsAttribute * Infix_operator0, xxtUnionPtr xxGlobalRecoverySet));
  762. static void yyUnary ARGS((ParserMEY_tParsAttribute * Unary0, xxtUnionPtr xxGlobalRecoverySet));
  763. static void yyBinary ARGS((ParserMEY_tParsAttribute * Binary0, xxtUnionPtr xxGlobalRecoverySet));
  764. static void yyInheritance ARGS((ParserMEY_tParsAttribute * Inheritance0, xxtUnionPtr xxGlobalRecoverySet));
  765. static void yyParent_list ARGS((ParserMEY_tParsAttribute * Parent_list0, xxtUnionPtr xxGlobalRecoverySet));
  766. static void yyParent ARGS((ParserMEY_tParsAttribute * Parent0, xxtUnionPtr xxGlobalRecoverySet));
  767. static void yyFeature_adaptation ARGS((ParserMEY_tParsAttribute * Feature_adaptation0, xxtUnionPtr xxGlobalRecoverySet));
  768. static void yyRename ARGS((ParserMEY_tParsAttribute * Rename0, xxtUnionPtr xxGlobalRecoverySet));
  769. static void yyRename_list ARGS((ParserMEY_tParsAttribute * Rename_list0, xxtUnionPtr xxGlobalRecoverySet));
  770. static void yyRename_pair ARGS((ParserMEY_tParsAttribute * Rename_pair0, xxtUnionPtr xxGlobalRecoverySet));
  771. static void yyClients ARGS((ParserMEY_tParsAttribute * Clients0, xxtUnionPtr xxGlobalRecoverySet));
  772. static void yyClass_list ARGS((ParserMEY_tParsAttribute * Class_list0, xxtUnionPtr xxGlobalRecoverySet));
  773. static void yyNew_exports ARGS((ParserMEY_tParsAttribute * New_exports0, xxtUnionPtr xxGlobalRecoverySet));
  774. static void yyNew_export_list ARGS((ParserMEY_tParsAttribute * New_export_list0, xxtUnionPtr xxGlobalRecoverySet));
  775. static void yyNew_export_item ARGS((ParserMEY_tParsAttribute * New_export_item0, xxtUnionPtr xxGlobalRecoverySet));
  776. static void yyFeature_set ARGS((ParserMEY_tParsAttribute * Feature_set0, xxtUnionPtr xxGlobalRecoverySet));
  777. static void yyFeature_list ARGS((ParserMEY_tParsAttribute * Feature_list0, xxtUnionPtr xxGlobalRecoverySet));
  778. static void yyFormal_arguments ARGS((ParserMEY_tParsAttribute * Formal_arguments0, xxtUnionPtr xxGlobalRecoverySet));
  779. static void yyEntity_declaration_list ARGS((ParserMEY_tParsAttribute * Entity_declaration_list0, xxtUnionPtr xxGlobalRecoverySet));
  780. static void yyEntity_declaration_group ARGS((ParserMEY_tParsAttribute * Entity_declaration_group0, xxtUnionPtr xxGlobalRecoverySet));
  781. static void yyIdentifier_list ARGS((ParserMEY_tParsAttribute * Identifier_list0, xxtUnionPtr xxGlobalRecoverySet));
  782. static void yyType_mark ARGS((ParserMEY_tParsAttribute * Type_mark0, xxtUnionPtr xxGlobalRecoverySet));
  783. static void yyRoutine ARGS((ParserMEY_tParsAttribute * Routine0, xxtUnionPtr xxGlobalRecoverySet));
  784. static void yyRoutine_body ARGS((ParserMEY_tParsAttribute * Routine_body0, xxtUnionPtr xxGlobalRecoverySet));
  785. static void yyEffective ARGS((ParserMEY_tParsAttribute * Effective0, xxtUnionPtr xxGlobalRecoverySet));
  786. static void yyInternal ARGS((ParserMEY_tParsAttribute * Internal0, xxtUnionPtr xxGlobalRecoverySet));
  787. static void yyDeferred ARGS((ParserMEY_tParsAttribute * Deferred0, xxtUnionPtr xxGlobalRecoverySet));
  788. static void yyLocal_declarations ARGS((ParserMEY_tParsAttribute * Local_declarations0, xxtUnionPtr xxGlobalRecoverySet));
  789. static void yyInstruction ARGS((ParserMEY_tParsAttribute * Instruction0, xxtUnionPtr xxGlobalRecoverySet));
  790. static void yyCurrent_instruct ARGS((ParserMEY_tParsAttribute * Current_instruct0, xxtUnionPtr xxGlobalRecoverySet));
  791. static void yyResult_instruct ARGS((ParserMEY_tParsAttribute * Result_instruct0, xxtUnionPtr xxGlobalRecoverySet));
  792. static void yyIdent_instruct ARGS((ParserMEY_tParsAttribute * Ident_instruct0, xxtUnionPtr xxGlobalRecoverySet));
  793. static void yyPrecondition ARGS((ParserMEY_tParsAttribute * Precondition0, xxtUnionPtr xxGlobalRecoverySet));
  794. static void yyPostcondition ARGS((ParserMEY_tParsAttribute * Postcondition0, xxtUnionPtr xxGlobalRecoverySet));
  795. static void yyInvariant ARGS((ParserMEY_tParsAttribute * Invariant0, xxtUnionPtr xxGlobalRecoverySet));
  796. static void yyAssertion ARGS((ParserMEY_tParsAttribute * Assertion0, xxtUnionPtr xxGlobalRecoverySet));
  797. static void yyAssertion_clause ARGS((ParserMEY_tParsAttribute * Assertion_clause0, xxtUnionPtr xxGlobalRecoverySet));
  798. static void yyUnlabeled_assertion_clause ARGS((ParserMEY_tParsAttribute * Unlabeled_assertion_clause0, xxtUnionPtr xxGlobalRecoverySet));
  799. static void yyTag ARGS((ParserMEY_tParsAttribute * Tag0, xxtUnionPtr xxGlobalRecoverySet));
  800. static void yyOld ARGS((ParserMEY_tParsAttribute * Old0, xxtUnionPtr xxGlobalRecoverySet));
  801. static void yyCheck ARGS((ParserMEY_tParsAttribute * Check0, xxtUnionPtr xxGlobalRecoverySet));
  802. static void yyVariant ARGS((ParserMEY_tParsAttribute * Variant0, xxtUnionPtr xxGlobalRecoverySet));
  803. static void yyRedefine ARGS((ParserMEY_tParsAttribute * Redefine0, xxtUnionPtr xxGlobalRecoverySet));
  804. static void yyUndefine ARGS((ParserMEY_tParsAttribute * Undefine0, xxtUnionPtr xxGlobalRecoverySet));
  805. static void yySelect ARGS((ParserMEY_tParsAttribute * Select0, xxtUnionPtr xxGlobalRecoverySet));
  806. static void yyType ARGS((ParserMEY_tParsAttribute * Type0, xxtUnionPtr xxGlobalRecoverySet));
  807. static void yyClass_type ARGS((ParserMEY_tParsAttribute * Class_type0, xxtUnionPtr xxGlobalRecoverySet));
  808. static void yyActual_generics ARGS((ParserMEY_tParsAttribute * Actual_generics0, xxtUnionPtr xxGlobalRecoverySet));
  809. static void yyType_list ARGS((ParserMEY_tParsAttribute * Type_list0, xxtUnionPtr xxGlobalRecoverySet));
  810. static void yyBit_type ARGS((ParserMEY_tParsAttribute * Bit_type0, xxtUnionPtr xxGlobalRecoverySet));
  811. static void yyAnchored ARGS((ParserMEY_tParsAttribute * Anchored0, xxtUnionPtr xxGlobalRecoverySet));
  812. static void yyAnchor ARGS((ParserMEY_tParsAttribute * Anchor0, xxtUnionPtr xxGlobalRecoverySet));
  813. static void yyFormal_generics ARGS((ParserMEY_tParsAttribute * Formal_generics0, xxtUnionPtr xxGlobalRecoverySet));
  814. static void yyFormal_generic_list ARGS((ParserMEY_tParsAttribute * Formal_generic_list0, xxtUnionPtr xxGlobalRecoverySet));
  815. static void yyFormal_generic ARGS((ParserMEY_tParsAttribute * Formal_generic0, xxtUnionPtr xxGlobalRecoverySet));
  816. static void yyFormal_generic_name ARGS((ParserMEY_tParsAttribute * Formal_generic_name0, xxtUnionPtr xxGlobalRecoverySet));
  817. static void yyConstraint ARGS((ParserMEY_tParsAttribute * Constraint0, xxtUnionPtr xxGlobalRecoverySet));
  818. static void yyCompound ARGS((ParserMEY_tParsAttribute * Compound0, xxtUnionPtr xxGlobalRecoverySet));
  819. static void yyConditional ARGS((ParserMEY_tParsAttribute * Conditional0, xxtUnionPtr xxGlobalRecoverySet));
  820. static void yyThen_part_list ARGS((ParserMEY_tParsAttribute * Then_part_list0, xxtUnionPtr xxGlobalRecoverySet));
  821. static void yyThen_part ARGS((ParserMEY_tParsAttribute * Then_part0, xxtUnionPtr xxGlobalRecoverySet));
  822. static void yyElse_part ARGS((ParserMEY_tParsAttribute * Else_part0, xxtUnionPtr xxGlobalRecoverySet));
  823. static void yyMulti_branch ARGS((ParserMEY_tParsAttribute * Multi_branch0, xxtUnionPtr xxGlobalRecoverySet));
  824. static void yyWhen_part_list ARGS((ParserMEY_tParsAttribute * When_part_list0, xxtUnionPtr xxGlobalRecoverySet));
  825. static void yyWhen_part ARGS((ParserMEY_tParsAttribute * When_part0, xxtUnionPtr xxGlobalRecoverySet));
  826. static void yyChoices ARGS((ParserMEY_tParsAttribute * Choices0, xxtUnionPtr xxGlobalRecoverySet));
  827. static void yyChoice ARGS((ParserMEY_tParsAttribute * Choice0, xxtUnionPtr xxGlobalRecoverySet));
  828. static void yyLoop ARGS((ParserMEY_tParsAttribute * Loop0, xxtUnionPtr xxGlobalRecoverySet));
  829. static void yyInitialization ARGS((ParserMEY_tParsAttribute * Initialization0, xxtUnionPtr xxGlobalRecoverySet));
  830. static void yyLoop_body ARGS((ParserMEY_tParsAttribute * Loop_body0, xxtUnionPtr xxGlobalRecoverySet));
  831. static void yyExit ARGS((ParserMEY_tParsAttribute * Exit0, xxtUnionPtr xxGlobalRecoverySet));
  832. static void yyDebug ARGS((ParserMEY_tParsAttribute * Debug0, xxtUnionPtr xxGlobalRecoverySet));
  833. static void yyKeys_or_qual_call ARGS((ParserMEY_tParsAttribute * Keys_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet));
  834. static void yyString ARGS((ParserMEY_tParsAttribute * String0, xxtUnionPtr xxGlobalRecoverySet));
  835. static void yyString_list ARGS((ParserMEY_tParsAttribute * String_list0, xxtUnionPtr xxGlobalRecoverySet));
  836. static void yyOne_compound ARGS((ParserMEY_tParsAttribute * One_compound0, xxtUnionPtr xxGlobalRecoverySet));
  837. static void yyRescue ARGS((ParserMEY_tParsAttribute * Rescue0, xxtUnionPtr xxGlobalRecoverySet));
  838. static void yyRetry ARGS((ParserMEY_tParsAttribute * Retry0, xxtUnionPtr xxGlobalRecoverySet));
  839. static void yyUnique ARGS((ParserMEY_tParsAttribute * Unique0, xxtUnionPtr xxGlobalRecoverySet));
  840. static void yyEntity ARGS((ParserMEY_tParsAttribute * Entity0, xxtUnionPtr xxGlobalRecoverySet));
  841. static void yyWritable ARGS((ParserMEY_tParsAttribute * Writable0, xxtUnionPtr xxGlobalRecoverySet));
  842. static void yyAttribute ARGS((ParserMEY_tParsAttribute * Attribute0, xxtUnionPtr xxGlobalRecoverySet));
  843. static void yyLocal ARGS((ParserMEY_tParsAttribute * Local0, xxtUnionPtr xxGlobalRecoverySet));
  844. static void yyCreators ARGS((ParserMEY_tParsAttribute * Creators0, xxtUnionPtr xxGlobalRecoverySet));
  845. static void yyCreation_clause ARGS((ParserMEY_tParsAttribute * Creation_clause0, xxtUnionPtr xxGlobalRecoverySet));
  846. static void yyCreation ARGS((ParserMEY_tParsAttribute * Creation0, xxtUnionPtr xxGlobalRecoverySet));
  847. static void yyCreation_call ARGS((ParserMEY_tParsAttribute * Creation_call0, xxtUnionPtr xxGlobalRecoverySet));
  848. static void yyQualified_call ARGS((ParserMEY_tParsAttribute * Qualified_call0, xxtUnionPtr xxGlobalRecoverySet));
  849. static void yyParenthesized_qualifier ARGS((ParserMEY_tParsAttribute * Parenthesized_qualifier0, xxtUnionPtr xxGlobalRecoverySet));
  850. static void yyCall_chain ARGS((ParserMEY_tParsAttribute * Call_chain0, xxtUnionPtr xxGlobalRecoverySet));
  851. static void yyUnqualified_call ARGS((ParserMEY_tParsAttribute * Unqualified_call0, xxtUnionPtr xxGlobalRecoverySet));
  852. static void yyActuals ARGS((ParserMEY_tParsAttribute * Actuals0, xxtUnionPtr xxGlobalRecoverySet));
  853. static void yyActual_list ARGS((ParserMEY_tParsAttribute * Actual_list0, xxtUnionPtr xxGlobalRecoverySet));
  854. static void yyActual ARGS((ParserMEY_tParsAttribute * Actual0, xxtUnionPtr xxGlobalRecoverySet));
  855. static void yyAddress ARGS((ParserMEY_tParsAttribute * Address0, xxtUnionPtr xxGlobalRecoverySet));
  856. static void yyAddress_mark ARGS((ParserMEY_tParsAttribute * Address_mark0, xxtUnionPtr xxGlobalRecoverySet));
  857. static void yyExpression ARGS((ParserMEY_tParsAttribute * Expression0, xxtUnionPtr xxGlobalRecoverySet));
  858. static void yyExpr_tail ARGS((ParserMEY_tParsAttribute * Expr_tail0, xxtUnionPtr xxGlobalRecoverySet));
  859. static void yyIdent_call ARGS((ParserMEY_tParsAttribute * Ident_call0, xxtUnionPtr xxGlobalRecoverySet));
  860. static void yyResult_call ARGS((ParserMEY_tParsAttribute * Result_call0, xxtUnionPtr xxGlobalRecoverySet));
  861. static void yyCurrent_call ARGS((ParserMEY_tParsAttribute * Current_call0, xxtUnionPtr xxGlobalRecoverySet));
  862. static void yyParenth_expr_or_qual_call ARGS((ParserMEY_tParsAttribute * Parenth_expr_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet));
  863. static void yyNo_sign_constant ARGS((ParserMEY_tParsAttribute * No_sign_constant0, xxtUnionPtr xxGlobalRecoverySet));
  864. static void yyBoolean_expression ARGS((ParserMEY_tParsAttribute * Boolean_expression0, xxtUnionPtr xxGlobalRecoverySet));
  865. static void yyComparison ARGS((ParserMEY_tParsAttribute * Comparison0, xxtUnionPtr xxGlobalRecoverySet));
  866. static void yyConstant ARGS((ParserMEY_tParsAttribute * Constant0, xxtUnionPtr xxGlobalRecoverySet));
  867. static void yyConstant_attribute ARGS((ParserMEY_tParsAttribute * Constant_attribute0, xxtUnionPtr xxGlobalRecoverySet));
  868. static void yyManifest_constant ARGS((ParserMEY_tParsAttribute * Manifest_constant0, xxtUnionPtr xxGlobalRecoverySet));
  869. static void yyNumber_constant ARGS((ParserMEY_tParsAttribute * Number_constant0, xxtUnionPtr xxGlobalRecoverySet));
  870. static void yySign ARGS((ParserMEY_tParsAttribute * Sign0, xxtUnionPtr xxGlobalRecoverySet));
  871. static void yyBoolean_constant ARGS((ParserMEY_tParsAttribute * Boolean_constant0, xxtUnionPtr xxGlobalRecoverySet));
  872. static void yyBit_constant ARGS((ParserMEY_tParsAttribute * Bit_constant0, xxtUnionPtr xxGlobalRecoverySet));
  873. static void yyManifest_array ARGS((ParserMEY_tParsAttribute * Manifest_array0, xxtUnionPtr xxGlobalRecoverySet));
  874. static void yyExpression_list ARGS((ParserMEY_tParsAttribute * Expression_list0, xxtUnionPtr xxGlobalRecoverySet));
  875. static void yyStrip ARGS((ParserMEY_tParsAttribute * Strip0, xxtUnionPtr xxGlobalRecoverySet));
  876. static void yyAttribute_list ARGS((ParserMEY_tParsAttribute * Attribute_list0, xxtUnionPtr xxGlobalRecoverySet));
  877. static void yyExternal ARGS((ParserMEY_tParsAttribute * External0, xxtUnionPtr xxGlobalRecoverySet));
  878. static void yyLanguage_name ARGS((ParserMEY_tParsAttribute * Language_name0, xxtUnionPtr xxGlobalRecoverySet));
  879. static void yyExternal_name ARGS((ParserMEY_tParsAttribute * External_name0, xxtUnionPtr xxGlobalRecoverySet));
  880. static void yyIdentifier ARGS((ParserMEY_tParsAttribute * Identifier0, xxtUnionPtr xxGlobalRecoverySet));
  881.  
  882. static void BeginParserMEY ()
  883. {
  884.   if (xxIsInitialized) return;
  885. /* line 17 "eiffel_mey.ell" */
  886.  
  887.     EiffelScan_BeginScanner();
  888.  
  889. }
  890.  
  891. void CloseParserMEY ()
  892. {
  893. /* line 22 "eiffel_mey.ell" */
  894.  
  895.     EiffelScan_CloseScanner();
  896.  
  897. }
  898.  
  899. static xxbool xxIsElement
  900. # if defined __STDC__ | defined __cplusplus
  901. (xxtSet xySet, short xxElement)
  902. # else
  903. (xySet, xxElement) xxtSet xySet; short xxElement;
  904. # endif
  905. { return xySet [xxElement / 32] << xxElement % 32 < 0; }
  906.  
  907. static void xxSkipTokens
  908. # if defined __STDC__ | defined __cplusplus
  909. (unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet)
  910. # else
  911. (xxLocalRecoverySet, xxGlobalRecoverySet)
  912. unsigned short    xxLocalRecoverySet;
  913. xxtUnionPtr    xxGlobalRecoverySet;
  914. # endif
  915. {
  916.   xxbool xxTokensSkipped = xxfalse;
  917.   xxtSet xxRecoverySet;
  918.   xxRecoverySet [0] = xxHorizontalSet [xxLocalRecoverySet] [0];
  919.   xxRecoverySet [1] = xxHorizontalSet [xxLocalRecoverySet] [1];
  920.   xxRecoverySet [2] = xxHorizontalSet [xxLocalRecoverySet] [2];
  921.   xxRecoverySet [3] = xxHorizontalSet [xxLocalRecoverySet] [3];
  922.   xxRecoverySet [0] |= (unsigned long) 0x80000000L; /* INCL (xxRecoverySet [0], xxEof); */
  923.   while (xxGlobalRecoverySet != (xxtUnionPtr) 0L) {
  924.     xxRecoverySet [0] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [0];
  925.     xxRecoverySet [1] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [1];
  926.     xxRecoverySet [2] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [2];
  927.     xxRecoverySet [3] |= xxHorizontalSet [xxGlobalRecoverySet->xxLocalRecoverySet] [3];
  928.     xxGlobalRecoverySet = xxGlobalRecoverySet->xxGlobalRecoverySet;
  929.   }
  930.   while (! xxIsElement (xxRecoverySet, xxToken)) {
  931.     xxToken = EiffelScan_GetToken (); xxTokensSkipped = xxtrue;
  932.   }
  933.   if (xxTokensSkipped) ErrorMessage (xxRestartPoint, xxInformation, EiffelScan_Attribute.Position);
  934.   xxIsRepairMode = xxtrue;
  935. }
  936.  
  937. static void xxUnexpected
  938. # if defined __STDC__ | defined __cplusplus
  939. (unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet)
  940. # else
  941. (xxLocalRecoverySet, xxGlobalRecoverySet)
  942. unsigned short    xxLocalRecoverySet;
  943. xxtUnionPtr    xxGlobalRecoverySet;
  944. # endif
  945. {
  946.   if (! xxIsRepairMode) {
  947.     xxErrorCount ++;
  948.     ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position);
  949.     xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet);
  950.   }
  951. }
  952.  
  953. static void xxExpected
  954. # if defined __STDC__ | defined __cplusplus
  955. (unsigned short xxExpectedSet, unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet)
  956. # else
  957. (xxExpectedSet, xxLocalRecoverySet, xxGlobalRecoverySet)
  958. unsigned short    xxExpectedSet, xxLocalRecoverySet;
  959. xxtUnionPtr    xxGlobalRecoverySet;
  960. # endif
  961. {
  962.   if (! xxIsRepairMode) {
  963.     short yxToken;
  964.     int xxLength = 0;
  965.     char xxContinueString [256];
  966.     xxErrorCount ++;
  967.     ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position);
  968.     xxContinueString [0] = '\0';
  969.     for (yxToken = 0; yxToken <= 107; yxToken ++)
  970.       if (xxIsElement (xxHorizontalSet [xxExpectedSet], yxToken)) {
  971.     char * xxTokenString = ParserMEY_TokenName [yxToken];
  972.     if ((xxLength += strlen (xxTokenString) + 1) >= 256) break;
  973.     (void) strcat (xxContinueString, xxTokenString);
  974.     (void) strcat (xxContinueString, " ");
  975.       }
  976.     ErrorMessageI (xxExpectedTokens, xxInformation, EiffelScan_Attribute.Position, xxString, xxContinueString);
  977.     xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet);
  978.   }
  979. }
  980.  
  981. static void xxRecoveryLiteral
  982. # if defined __STDC__ | defined __cplusplus
  983. (unsigned short xxExpected, unsigned short xxLocalRecoverySet, xxtUnionPtr xxGlobalRecoverySet)
  984. # else
  985. (xxExpected, xxLocalRecoverySet, xxGlobalRecoverySet)
  986. unsigned short    xxExpected, xxLocalRecoverySet;
  987. xxtUnionPtr    xxGlobalRecoverySet;
  988. # endif
  989. {
  990.   if (! xxIsRepairMode) {
  991.     xxErrorCount ++;
  992.     ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position);
  993.     ErrorMessageI (xxExpectedTokens, xxInformation, EiffelScan_Attribute.Position, xxString, ParserMEY_TokenName [xxExpected]);
  994.     xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet);
  995.   }
  996.   if (xxToken != xxExpected) {
  997.     ErrorMessageI (xxTokenInserted, xxRepair, EiffelScan_Attribute.Position, xxString, ParserMEY_TokenName [xxExpected]);
  998.   } else {
  999.     if (xxToken != xxEof) xxToken = EiffelScan_GetToken ();
  1000.     xxIsRepairMode = xxfalse;
  1001.   }
  1002. }
  1003.  
  1004. static void xxRecoveryTerminal
  1005. # if defined __STDC__ | defined __cplusplus
  1006. (unsigned short xxExpected, unsigned short xxLocalRecoverySet,
  1007. xxtUnionPtr xxGlobalRecoverySet, EiffelScan_tScanAttribute * xxRepairAttribute)
  1008. # else
  1009. (xxExpected, xxLocalRecoverySet, xxGlobalRecoverySet, xxRepairAttribute)
  1010. unsigned short    xxExpected, xxLocalRecoverySet;
  1011. xxtUnionPtr    xxGlobalRecoverySet;
  1012. EiffelScan_tScanAttribute    * xxRepairAttribute;
  1013. # endif
  1014. {
  1015.   if (! xxIsRepairMode) {
  1016.     xxErrorCount ++;
  1017.     ErrorMessage (xxSyntaxError, xxError, EiffelScan_Attribute.Position);
  1018.     ErrorMessageI (xxExpectedTokens, xxInformation, EiffelScan_Attribute.Position, xxString, ParserMEY_TokenName [xxExpected]);
  1019.     xxSkipTokens (xxLocalRecoverySet, xxGlobalRecoverySet);
  1020.   }
  1021.   if (xxToken != xxExpected) {
  1022.     ErrorMessageI (xxTokenInserted, xxRepair, EiffelScan_Attribute.Position, xxString, ParserMEY_TokenName [xxExpected]);
  1023.     EiffelScan_ErrorAttribute ((int) xxExpected, xxRepairAttribute);
  1024.   } else {
  1025.     * xxRepairAttribute = EiffelScan_Attribute;
  1026.     if (xxToken != xxEof) xxToken = EiffelScan_GetToken ();
  1027.     xxIsRepairMode = xxfalse;
  1028.   }
  1029. }
  1030.  
  1031. int ParserMEY ()
  1032. {
  1033.   xxErrorCount = 0;
  1034.   BeginParserMEY ();
  1035.   xxToken = EiffelScan_GetToken ();
  1036.   yyEiffel (& ParserMEY_ParsAttribute, (xxtUnionPtr) 0L);
  1037.   if (xxToken != xxEof) xxRecoveryLiteral (xxEof, 0, (xxtUnionPtr) 0L);
  1038.   return xxErrorCount;
  1039. }
  1040.  
  1041. static void yyEiffel
  1042. # if defined __STDC__ | defined __cplusplus
  1043. (ParserMEY_tParsAttribute * Eiffel0, xxtUnionPtr xxGlobalRecoverySet)
  1044. # else
  1045. (Eiffel0, xxGlobalRecoverySet)
  1046. ParserMEY_tParsAttribute    * Eiffel0;
  1047. xxtUnionPtr    xxGlobalRecoverySet;
  1048. # endif
  1049. {
  1050.   ParserMEY_tParsAttribute Class_declaration1;
  1051.   xxtUnion xxUnion;
  1052.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1053. /* line 147 "eiffel_mey.ell" */
  1054.  TreeRoot = mClasses0();                                
  1055.   for (;;) {
  1056.     xxUnion.xxLocalRecoverySet = 0; yyClass_declaration (& Class_declaration1, & xxUnion); /*  */
  1057. /* line 148 "eiffel_mey.ell" */
  1058.  TreeRoot = mClasses1(Class_declaration1.Tree, TreeRoot);                
  1059.     if (! ((xxVerticalSet [xxToken] & 1 << 0 /*  'class' deferred expanded 'indexing' */))) {
  1060.       if ((xxToken == 0 /* _EndOfFile */)) break;
  1061.       xxExpected (1, 1, xxGlobalRecoverySet); /*  'class' deferred expanded 'indexing' /  'class' deferred expanded 'indexing' */
  1062.       if (! ((xxVerticalSet [xxToken] & 1 << 0 /*  'class' deferred expanded 'indexing' */))) break;
  1063.     }
  1064.   }
  1065. /* line 149 "eiffel_mey.ell" */
  1066.  TreeRoot = mEiffel(ReverseTree(TreeRoot));                          
  1067. }
  1068.  
  1069. static void yyClass_declaration
  1070. # if defined __STDC__ | defined __cplusplus
  1071. (ParserMEY_tParsAttribute * Class_declaration0, xxtUnionPtr xxGlobalRecoverySet)
  1072. # else
  1073. (Class_declaration0, xxGlobalRecoverySet)
  1074. ParserMEY_tParsAttribute    * Class_declaration0;
  1075. xxtUnionPtr    xxGlobalRecoverySet;
  1076. # endif
  1077. {
  1078.   ParserMEY_tParsAttribute Indexing1;
  1079.   ParserMEY_tParsAttribute Class_header1;
  1080.   ParserMEY_tParsAttribute Formal_generics1;
  1081.   ParserMEY_tParsAttribute Obsolete1;
  1082.   ParserMEY_tParsAttribute Inheritance1;
  1083.   ParserMEY_tParsAttribute Creators1;
  1084.   ParserMEY_tParsAttribute Features1;
  1085.   ParserMEY_tParsAttribute Invariant1;
  1086.   xxtUnion xxUnion;
  1087.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1088. /* line 154 "eiffel_mey.ell" */
  1089.  Class_declaration0->Tree = mClass_declaration(mIndex_list0(), 
  1090.                                     mClass_header0(),
  1091.                                     mFormal_generics0(),
  1092.                                     mString0(),
  1093.                                     mParent_list0(),
  1094.                                     mCreators0(),
  1095.                                     mFeatures0(),
  1096.                                     mCondition0(),
  1097.                                     no_comment);                 
  1098.   for (;;) {
  1099.     if ((xxToken == 62 /* 'indexing' */)) {
  1100.       xxUnion.xxLocalRecoverySet = 3; yyIndexing (& Indexing1, & xxUnion); /*  '[' 'class' 'creation' deferred 'end' expanded 'feature' 'inherit' 'invariant' 'obsolete' */
  1101. /* line 163 "eiffel_mey.ell" */
  1102.  Class_declaration0->Tree->Class_declaration.Indexing = Indexing1.Tree;        
  1103.       break;
  1104.     } else if ((xxVerticalSet [xxToken] & 1 << 1 /*  'class' deferred expanded */) || xxIsRepairMode) break;
  1105.     xxExpected (1, 2, xxGlobalRecoverySet); /*  'class' deferred expanded 'indexing' /  '[' 'class' 'creation' deferred 'end' expanded 'feature' 'indexing' 'inherit' 'invariant' 'obsolete' */
  1106.   }
  1107.   xxUnion.xxLocalRecoverySet = 4; yyClass_header (& Class_header1, & xxUnion); /*  '[' 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */
  1108. /* line 164 "eiffel_mey.ell" */
  1109.  Class_declaration0->Tree->Class_declaration.Class_header = Class_header1.Tree;
  1110.   for (;;) {
  1111.     if ((xxToken == 19 /* '[' */)) {
  1112.       xxUnion.xxLocalRecoverySet = 5; yyFormal_generics (& Formal_generics1, & xxUnion); /*  'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */
  1113. /* line 165 "eiffel_mey.ell" */
  1114.  Class_declaration0->Tree->Class_declaration.Formal_generics = Formal_generics1.Tree;     
  1115.       break;
  1116.     } else if ((xxVerticalSet [xxToken] & 1 << 2 /*  'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */) || xxIsRepairMode) break;
  1117.     xxExpected (4, 4, xxGlobalRecoverySet); /*  '[' 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' /  '[' 'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */
  1118.   }
  1119.   for (;;) {
  1120.     if ((xxToken == 73 /* 'obsolete' */)) {
  1121.       xxUnion.xxLocalRecoverySet = 6; yyObsolete (& Obsolete1, & xxUnion); /*  'creation' 'end' 'feature' 'inherit' 'invariant' */
  1122. /* line 166 "eiffel_mey.ell" */
  1123.  Class_declaration0->Tree->Class_declaration.Obsolete = Obsolete1.Tree;         
  1124.       break;
  1125.     } else if ((xxVerticalSet [xxToken] & 1 << 3 /*  'creation' 'end' 'feature' 'inherit' 'invariant' */) || xxIsRepairMode) break;
  1126.     xxExpected (5, 5, xxGlobalRecoverySet); /*  'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' /  'creation' 'end' 'feature' 'inherit' 'invariant' 'obsolete' */
  1127.   }
  1128.   for (;;) {
  1129.     if ((xxToken == 64 /* 'inherit' */)) {
  1130.       xxUnion.xxLocalRecoverySet = 7; yyInheritance (& Inheritance1, & xxUnion); /*  'creation' 'end' 'feature' 'invariant' */
  1131. /* line 167 "eiffel_mey.ell" */
  1132.  Class_declaration0->Tree->Class_declaration.Inheritance = Inheritance1.Tree;        
  1133.       break;
  1134.     } else if ((xxVerticalSet [xxToken] & 1 << 4 /*  'creation' 'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  1135.     xxExpected (6, 6, xxGlobalRecoverySet); /*  'creation' 'end' 'feature' 'inherit' 'invariant' /  'creation' 'end' 'feature' 'inherit' 'invariant' */
  1136.   }
  1137.   for (;;) {
  1138.     if ((xxToken == 43 /* 'creation' */)) {
  1139.       xxUnion.xxLocalRecoverySet = 8; yyCreators (& Creators1, & xxUnion); /*  'end' 'feature' 'invariant' */
  1140. /* line 168 "eiffel_mey.ell" */
  1141.  Class_declaration0->Tree->Class_declaration.Creators = ReverseTree(Creators1.Tree);    
  1142.       break;
  1143.     } else if ((xxVerticalSet [xxToken] & 1 << 5 /*  'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  1144.     xxExpected (7, 7, xxGlobalRecoverySet); /*  'creation' 'end' 'feature' 'invariant' /  'creation' 'end' 'feature' 'invariant' */
  1145.   }
  1146.   for (;;) {
  1147.     if ((xxToken == 57 /* 'feature' */)) {
  1148.       xxUnion.xxLocalRecoverySet = 9; yyFeatures (& Features1, & xxUnion); /*  'end' 'invariant' */
  1149. /* line 169 "eiffel_mey.ell" */
  1150.  Class_declaration0->Tree->Class_declaration.Features = ReverseTree(Features1.Tree);    
  1151.       break;
  1152.     } else if ((xxVerticalSet [xxToken] & 1 << 6 /*  'end' 'invariant' */) || xxIsRepairMode) break;
  1153.     xxExpected (8, 8, xxGlobalRecoverySet); /*  'end' 'feature' 'invariant' /  'end' 'feature' 'invariant' */
  1154.   }
  1155.   for (;;) {
  1156.     if ((xxToken == 67 /* 'invariant' */)) {
  1157.       xxUnion.xxLocalRecoverySet = 10; yyInvariant (& Invariant1, & xxUnion); /*  'end' */
  1158. /* line 170 "eiffel_mey.ell" */
  1159.  Class_declaration0->Tree->Class_declaration.Invariant = Invariant1.Tree;        
  1160.       break;
  1161.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  1162.     xxExpected (9, 9, xxGlobalRecoverySet); /*  'end' 'invariant' /  'end' 'invariant' */
  1163.   }
  1164. /* line 171 "eiffel_mey.ell" */
  1165.  comment_ref = no_comment;                                 
  1166.   if (xxToken != 51 /* 'end' */)
  1167.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  1168.   else {
  1169.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1170.   }
  1171. /* line 173 "eiffel_mey.ell" */
  1172.   Class_declaration0->Tree->Class_declaration.comment = comment_ref;            
  1173. }
  1174.  
  1175. static void yyIndexing
  1176. # if defined __STDC__ | defined __cplusplus
  1177. (ParserMEY_tParsAttribute * Indexing0, xxtUnionPtr xxGlobalRecoverySet)
  1178. # else
  1179. (Indexing0, xxGlobalRecoverySet)
  1180. ParserMEY_tParsAttribute    * Indexing0;
  1181. xxtUnionPtr    xxGlobalRecoverySet;
  1182. # endif
  1183. {
  1184.   ParserMEY_tParsAttribute Index_list1;
  1185.   xxtUnion xxUnion;
  1186.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1187.   if (xxToken != 62 /* 'indexing' */)
  1188.     xxRecoveryLiteral (62, 11, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false 'indexing' true Id */
  1189.   else {
  1190.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1191.   }
  1192.   xxUnion.xxLocalRecoverySet = 0; yyIndex_list (& Index_list1, & xxUnion); /*  */
  1193. /* line 180 "eiffel_mey.ell" */
  1194.  Indexing0->Tree = ReverseTree(Index_list1.Tree);                     
  1195. }
  1196.  
  1197. static void yyIndex_list
  1198. # if defined __STDC__ | defined __cplusplus
  1199. (ParserMEY_tParsAttribute * Index_list0, xxtUnionPtr xxGlobalRecoverySet)
  1200. # else
  1201. (Index_list0, xxGlobalRecoverySet)
  1202. ParserMEY_tParsAttribute    * Index_list0;
  1203. xxtUnionPtr    xxGlobalRecoverySet;
  1204. # endif
  1205. {
  1206.   ParserMEY_tParsAttribute Index_clause1;
  1207.   xxtUnion xxUnion;
  1208.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1209. /* line 183 "eiffel_mey.ell" */
  1210.  Index_list0->Tree = mIndex_list0();                             
  1211.   for (;;) {
  1212.     if ((xxVerticalSet [xxToken] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */)) {
  1213.       for (;;) {
  1214.         xxUnion.xxLocalRecoverySet = 13; yyIndex_clause (& Index_clause1, & xxUnion); /*  ';' */
  1215. /* line 184 "eiffel_mey.ell" */
  1216.  Index_list0->Tree = mIndex_list1(Index_clause1.Tree, Index_list0->Tree);         
  1217.         if (! ((xxToken == 7 /* ';' */))) {
  1218.           if ((xxVerticalSet [xxToken] & 1 << 1 /*  'class' deferred expanded */)) break;
  1219.           xxExpected (13, 12, xxGlobalRecoverySet); /*  ';' /  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */
  1220.           if (! ((xxToken == 7 /* ';' */) || (xxVerticalSet [xxToken] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */))) break;
  1221.         }
  1222.         if (xxToken != 7 /* ';' */)
  1223.           xxRecoveryLiteral (7, 12, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */
  1224.         else {
  1225.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1226.         }
  1227.       }
  1228.       break;
  1229.     } else if ((xxVerticalSet [xxToken] & 1 << 1 /*  'class' deferred expanded */) || xxIsRepairMode) break;
  1230.     xxExpected (12, 12, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id /  Character_constant Bit_sequence Integer Real Manifest_string ';' plus minus false true Id */
  1231.   }
  1232. }
  1233.  
  1234. static void yyIndex_clause
  1235. # if defined __STDC__ | defined __cplusplus
  1236. (ParserMEY_tParsAttribute * Index_clause0, xxtUnionPtr xxGlobalRecoverySet)
  1237. # else
  1238. (Index_clause0, xxGlobalRecoverySet)
  1239. ParserMEY_tParsAttribute    * Index_clause0;
  1240. xxtUnionPtr    xxGlobalRecoverySet;
  1241. # endif
  1242. {
  1243.   ParserMEY_tParsAttribute Identifier1;
  1244.   ParserMEY_tParsAttribute Index_terms1, Index_terms2;
  1245.   ParserMEY_tParsAttribute Manifest_constant1;
  1246.   xxtUnion xxUnion;
  1247.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1248.   for (;;) {
  1249.     switch (xxToken) {
  1250.     case 106 /* Id */ :; 
  1251.       xxUnion.xxLocalRecoverySet = 14; yyIdentifier (& Identifier1, & xxUnion); /*  ',' ':' */
  1252.       for (;;) {
  1253.         switch (xxToken) {
  1254.         case 9 /* ':' */ :; 
  1255.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1256.           xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms1, & xxUnion); /*  */
  1257. /* line 190 "eiffel_mey.ell" */
  1258.  Index_clause0->Tree = mIndex_clause(Identifier1.Tree, Index_terms1.Tree);         
  1259.           goto xx2;
  1260.         case 7 /* ';' */ :; 
  1261.         case 8 /* ',' */ :; 
  1262.         case 42 /* 'class' */ :; 
  1263.         case 46 /* deferred */ :; 
  1264.         case 53 /* expanded */ :; 
  1265.           for (;;) {
  1266.             if ((xxToken == 8 /* ',' */)) {
  1267.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1268.               xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /*  */
  1269. /* line 191 "eiffel_mey.ell" */
  1270.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1271.                                 mlist(Identifier1.Tree, Index_terms2.Tree) );     
  1272.               break;
  1273.             } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1274.             xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1275.           }
  1276.           goto xx2;
  1277.         case 10:;
  1278.         case 11:;
  1279.         case 12:;
  1280.         case 13:;
  1281.         case 14:;
  1282.         case 15:;
  1283.         case 16:;
  1284.         case 17:;
  1285.         case 18:;
  1286.         case 19:;
  1287.         case 20:;
  1288.         case 21:;
  1289.         case 22:;
  1290.         case 23:;
  1291.         case 24:;
  1292.         case 25:;
  1293.         case 26:;
  1294.         case 27:;
  1295.         case 28:;
  1296.         case 29:;
  1297.         case 30:;
  1298.         case 31:;
  1299.         case 32:;
  1300.         case 33:;
  1301.         case 34:;
  1302.         case 35:;
  1303.         case 36:;
  1304.         case 37:;
  1305.         case 38:;
  1306.         case 39:;
  1307.         case 40:;
  1308.         case 41:;
  1309.         case 43:;
  1310.         case 44:;
  1311.         case 45:;
  1312.         case 47:;
  1313.         case 48:;
  1314.         case 49:;
  1315.         case 50:;
  1316.         case 51:;
  1317.         case 52:;
  1318.         default:
  1319.           if (xxIsRepairMode) {
  1320.             for (;;) {
  1321.               if ((xxToken == 8 /* ',' */)) {
  1322.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1323.                 xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /*  */
  1324. /* line 191 "eiffel_mey.ell" */
  1325.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1326.                                 mlist(Identifier1.Tree, Index_terms2.Tree) );     
  1327.                 break;
  1328.               } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1329.               xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1330.             }
  1331.             goto xx2;
  1332.           }
  1333. xxUnexpected (14, xxGlobalRecoverySet); /*  ',' ':' */
  1334.         }
  1335.       }
  1336.       xx2:;
  1337.       goto xx1;
  1338.     case 1 /* Character_constant */ :; 
  1339.     case 2 /* Bit_sequence */ :; 
  1340.     case 3 /* Integer */ :; 
  1341.     case 4 /* Real */ :; 
  1342.     case 5 /* Manifest_string */ :; 
  1343.     case 7 /* ';' */ :; 
  1344.     case 8 /* ',' */ :; 
  1345.     case 29 /* plus */ :; 
  1346.     case 30 /* minus */ :; 
  1347.     case 42 /* 'class' */ :; 
  1348.     case 46 /* deferred */ :; 
  1349.     case 53 /* expanded */ :; 
  1350.     case 56 /* false */ :; 
  1351.     case 90 /* true */ :; 
  1352.       xxUnion.xxLocalRecoverySet = 16; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  ',' */
  1353. /* line 193 "eiffel_mey.ell" */
  1354.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1355.                                 mlist(Manifest_constant1.Tree, mnolist()));     
  1356.       for (;;) {
  1357.         if ((xxToken == 8 /* ',' */)) {
  1358.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1359.           xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms1, & xxUnion); /*  */
  1360. /* line 195 "eiffel_mey.ell" */
  1361.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1362.                             mlist(Manifest_constant1.Tree, Index_terms1.Tree));     
  1363.           break;
  1364.         } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1365.         xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1366.       }
  1367.       goto xx1;
  1368.     case 6:;
  1369.     case 9:;
  1370.     case 10:;
  1371.     case 11:;
  1372.     case 12:;
  1373.     case 13:;
  1374.     case 14:;
  1375.     case 15:;
  1376.     case 16:;
  1377.     case 17:;
  1378.     case 18:;
  1379.     case 19:;
  1380.     case 20:;
  1381.     case 21:;
  1382.     case 22:;
  1383.     case 23:;
  1384.     case 24:;
  1385.     case 25:;
  1386.     case 26:;
  1387.     case 27:;
  1388.     case 28:;
  1389.     case 31:;
  1390.     case 32:;
  1391.     case 33:;
  1392.     case 34:;
  1393.     case 35:;
  1394.     case 36:;
  1395.     case 37:;
  1396.     case 38:;
  1397.     case 39:;
  1398.     case 40:;
  1399.     case 41:;
  1400.     case 43:;
  1401.     case 44:;
  1402.     case 45:;
  1403.     case 47:;
  1404.     case 48:;
  1405.     case 49:;
  1406.     case 50:;
  1407.     case 51:;
  1408.     case 52:;
  1409.     case 54:;
  1410.     case 55:;
  1411.     case 57:;
  1412.     case 58:;
  1413.     case 59:;
  1414.     case 60:;
  1415.     case 61:;
  1416.     case 62:;
  1417.     case 63:;
  1418.     case 64:;
  1419.     case 65:;
  1420.     case 66:;
  1421.     case 67:;
  1422.     case 68:;
  1423.     case 69:;
  1424.     case 70:;
  1425.     case 71:;
  1426.     case 72:;
  1427.     case 73:;
  1428.     case 74:;
  1429.     case 75:;
  1430.     case 76:;
  1431.     case 77:;
  1432.     case 78:;
  1433.     case 79:;
  1434.     case 80:;
  1435.     case 81:;
  1436.     case 82:;
  1437.     case 83:;
  1438.     case 84:;
  1439.     case 85:;
  1440.     case 86:;
  1441.     case 87:;
  1442.     case 88:;
  1443.     case 89:;
  1444.     case 91:;
  1445.     case 92:;
  1446.     case 93:;
  1447.     case 94:;
  1448.     case 95:;
  1449.     case 96:;
  1450.     case 97:;
  1451.     case 98:;
  1452.     case 99:;
  1453.     case 100:;
  1454.     case 101:;
  1455.     case 102:;
  1456.     case 103:;
  1457.     case 104:;
  1458.     case 105:;
  1459.     default:
  1460.       if (xxIsRepairMode) {
  1461.         xxUnion.xxLocalRecoverySet = 14; yyIdentifier (& Identifier1, & xxUnion); /*  ',' ':' */
  1462.         for (;;) {
  1463.           switch (xxToken) {
  1464.           case 9 /* ':' */ :; 
  1465.             if (xxToken != 9 /* ':' */)
  1466.               xxRecoveryLiteral (9, 15, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ':' plus minus false true Id */
  1467.             else {
  1468.               xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1469.             }
  1470.             xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms1, & xxUnion); /*  */
  1471. /* line 190 "eiffel_mey.ell" */
  1472.  Index_clause0->Tree = mIndex_clause(Identifier1.Tree, Index_terms1.Tree);         
  1473.             goto xx3;
  1474.           case 7 /* ';' */ :; 
  1475.           case 8 /* ',' */ :; 
  1476.           case 42 /* 'class' */ :; 
  1477.           case 46 /* deferred */ :; 
  1478.           case 53 /* expanded */ :; 
  1479.             for (;;) {
  1480.               if ((xxToken == 8 /* ',' */)) {
  1481.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1482.                 xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /*  */
  1483. /* line 191 "eiffel_mey.ell" */
  1484.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1485.                                 mlist(Identifier1.Tree, Index_terms2.Tree) );     
  1486.                 break;
  1487.               } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1488.               xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1489.             }
  1490.             goto xx3;
  1491.           case 10:;
  1492.           case 11:;
  1493.           case 12:;
  1494.           case 13:;
  1495.           case 14:;
  1496.           case 15:;
  1497.           case 16:;
  1498.           case 17:;
  1499.           case 18:;
  1500.           case 19:;
  1501.           case 20:;
  1502.           case 21:;
  1503.           case 22:;
  1504.           case 23:;
  1505.           case 24:;
  1506.           case 25:;
  1507.           case 26:;
  1508.           case 27:;
  1509.           case 28:;
  1510.           case 29:;
  1511.           case 30:;
  1512.           case 31:;
  1513.           case 32:;
  1514.           case 33:;
  1515.           case 34:;
  1516.           case 35:;
  1517.           case 36:;
  1518.           case 37:;
  1519.           case 38:;
  1520.           case 39:;
  1521.           case 40:;
  1522.           case 41:;
  1523.           case 43:;
  1524.           case 44:;
  1525.           case 45:;
  1526.           case 47:;
  1527.           case 48:;
  1528.           case 49:;
  1529.           case 50:;
  1530.           case 51:;
  1531.           case 52:;
  1532.           default:
  1533.             if (xxIsRepairMode) {
  1534.               for (;;) {
  1535.                 if ((xxToken == 8 /* ',' */)) {
  1536.                   xxToken =                   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1537.                   xxUnion.xxLocalRecoverySet = 0; yyIndex_terms (& Index_terms2, & xxUnion); /*  */
  1538. /* line 191 "eiffel_mey.ell" */
  1539.  Index_clause0->Tree = mIndex_clause(mManifest_constant0(NoPosition),
  1540.                                 mlist(Identifier1.Tree, Index_terms2.Tree) );     
  1541.                   break;
  1542.                 } else if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */) || xxIsRepairMode) break;
  1543.                 xxExpected (16, 16, xxGlobalRecoverySet); /*  ',' /  ',' */
  1544.               }
  1545.               goto xx3;
  1546.             }
  1547. xxUnexpected (14, xxGlobalRecoverySet); /*  ',' ':' */
  1548.           }
  1549.         }
  1550.         xx3:;
  1551.         goto xx1;
  1552.       }
  1553. xxUnexpected (17, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  1554.     }
  1555.   }
  1556.   xx1:;
  1557. }
  1558.  
  1559. static void yyIndex_terms
  1560. # if defined __STDC__ | defined __cplusplus
  1561. (ParserMEY_tParsAttribute * Index_terms0, xxtUnionPtr xxGlobalRecoverySet)
  1562. # else
  1563. (Index_terms0, xxGlobalRecoverySet)
  1564. ParserMEY_tParsAttribute    * Index_terms0;
  1565. xxtUnionPtr    xxGlobalRecoverySet;
  1566. # endif
  1567. {
  1568.   ParserMEY_tParsAttribute Index_value1;
  1569.   xxtUnion xxUnion;
  1570.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1571. /* line 200 "eiffel_mey.ell" */
  1572.  Index_terms0->Tree = mnolist();                            
  1573.   for (;;) {
  1574.     xxUnion.xxLocalRecoverySet = 16; yyIndex_value (& Index_value1, & xxUnion); /*  ',' */
  1575. /* line 201 "eiffel_mey.ell" */
  1576.  Index_terms0->Tree = mlist(Index_value1.Tree, Index_terms0->Tree);             
  1577.     if (! ((xxToken == 8 /* ',' */))) {
  1578.       if ((xxVerticalSet [xxToken + 108] & 1 << 0 /*  ';' 'class' deferred expanded */)) break;
  1579.       xxExpected (16, 17, xxGlobalRecoverySet); /*  ',' /  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  1580.       if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 108] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */))) break;
  1581.     }
  1582.     if (xxToken != 8 /* ',' */)
  1583.       xxRecoveryLiteral (8, 17, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  1584.     else {
  1585.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1586.     }
  1587.   }
  1588. /* line 202 "eiffel_mey.ell" */
  1589.  Index_terms0->Tree = ReverseTree(Index_terms0->Tree);                    
  1590. }
  1591.  
  1592. static void yyIndex_value
  1593. # if defined __STDC__ | defined __cplusplus
  1594. (ParserMEY_tParsAttribute * Index_value0, xxtUnionPtr xxGlobalRecoverySet)
  1595. # else
  1596. (Index_value0, xxGlobalRecoverySet)
  1597. ParserMEY_tParsAttribute    * Index_value0;
  1598. xxtUnionPtr    xxGlobalRecoverySet;
  1599. # endif
  1600. {
  1601.   ParserMEY_tParsAttribute Identifier1;
  1602.   ParserMEY_tParsAttribute Manifest_constant1;
  1603.   xxtUnion xxUnion;
  1604.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1605.   for (;;) {
  1606.     switch (xxToken) {
  1607.     case 106 /* Id */ :; 
  1608.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  1609. /* line 206 "eiffel_mey.ell" */
  1610.  Index_value0->Tree = Identifier1.Tree;                          
  1611.       goto xx4;
  1612.     case 1 /* Character_constant */ :; 
  1613.     case 2 /* Bit_sequence */ :; 
  1614.     case 3 /* Integer */ :; 
  1615.     case 4 /* Real */ :; 
  1616.     case 5 /* Manifest_string */ :; 
  1617.     case 7 /* ';' */ :; 
  1618.     case 8 /* ',' */ :; 
  1619.     case 29 /* plus */ :; 
  1620.     case 30 /* minus */ :; 
  1621.     case 42 /* 'class' */ :; 
  1622.     case 46 /* deferred */ :; 
  1623.     case 53 /* expanded */ :; 
  1624.     case 56 /* false */ :; 
  1625.     case 90 /* true */ :; 
  1626.       xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  1627. /* line 207 "eiffel_mey.ell" */
  1628.  Index_value0->Tree = Manifest_constant1.Tree;                        
  1629.       goto xx4;
  1630.     case 6:;
  1631.     case 9:;
  1632.     case 10:;
  1633.     case 11:;
  1634.     case 12:;
  1635.     case 13:;
  1636.     case 14:;
  1637.     case 15:;
  1638.     case 16:;
  1639.     case 17:;
  1640.     case 18:;
  1641.     case 19:;
  1642.     case 20:;
  1643.     case 21:;
  1644.     case 22:;
  1645.     case 23:;
  1646.     case 24:;
  1647.     case 25:;
  1648.     case 26:;
  1649.     case 27:;
  1650.     case 28:;
  1651.     case 31:;
  1652.     case 32:;
  1653.     case 33:;
  1654.     case 34:;
  1655.     case 35:;
  1656.     case 36:;
  1657.     case 37:;
  1658.     case 38:;
  1659.     case 39:;
  1660.     case 40:;
  1661.     case 41:;
  1662.     case 43:;
  1663.     case 44:;
  1664.     case 45:;
  1665.     case 47:;
  1666.     case 48:;
  1667.     case 49:;
  1668.     case 50:;
  1669.     case 51:;
  1670.     case 52:;
  1671.     case 54:;
  1672.     case 55:;
  1673.     case 57:;
  1674.     case 58:;
  1675.     case 59:;
  1676.     case 60:;
  1677.     case 61:;
  1678.     case 62:;
  1679.     case 63:;
  1680.     case 64:;
  1681.     case 65:;
  1682.     case 66:;
  1683.     case 67:;
  1684.     case 68:;
  1685.     case 69:;
  1686.     case 70:;
  1687.     case 71:;
  1688.     case 72:;
  1689.     case 73:;
  1690.     case 74:;
  1691.     case 75:;
  1692.     case 76:;
  1693.     case 77:;
  1694.     case 78:;
  1695.     case 79:;
  1696.     case 80:;
  1697.     case 81:;
  1698.     case 82:;
  1699.     case 83:;
  1700.     case 84:;
  1701.     case 85:;
  1702.     case 86:;
  1703.     case 87:;
  1704.     case 88:;
  1705.     case 89:;
  1706.     case 91:;
  1707.     case 92:;
  1708.     case 93:;
  1709.     case 94:;
  1710.     case 95:;
  1711.     case 96:;
  1712.     case 97:;
  1713.     case 98:;
  1714.     case 99:;
  1715.     case 100:;
  1716.     case 101:;
  1717.     case 102:;
  1718.     case 103:;
  1719.     case 104:;
  1720.     case 105:;
  1721.     default:
  1722.       if (xxIsRepairMode) {
  1723.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  1724. /* line 206 "eiffel_mey.ell" */
  1725.  Index_value0->Tree = Identifier1.Tree;                          
  1726.         goto xx4;
  1727.       }
  1728. xxUnexpected (18, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false true Id */
  1729.     }
  1730.   }
  1731.   xx4:;
  1732. }
  1733.  
  1734. static void yyClass_header
  1735. # if defined __STDC__ | defined __cplusplus
  1736. (ParserMEY_tParsAttribute * Class_header0, xxtUnionPtr xxGlobalRecoverySet)
  1737. # else
  1738. (Class_header0, xxGlobalRecoverySet)
  1739. ParserMEY_tParsAttribute    * Class_header0;
  1740. xxtUnionPtr    xxGlobalRecoverySet;
  1741. # endif
  1742. {
  1743.     EiffelScan_tScanAttribute deferred1;
  1744.     EiffelScan_tScanAttribute expanded1;
  1745.   ParserMEY_tParsAttribute Class_name1;
  1746.   xxtUnion xxUnion;
  1747.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1748.   for (;;) {
  1749.     switch (xxToken) {
  1750.     case 46 /* deferred */ :; 
  1751.       deferred1 =       EiffelScan_Attribute;
  1752.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1753.       if (xxToken != 42 /* 'class' */)
  1754.         xxRecoveryLiteral (42, 20, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER 'class' DOUBLE INTEGER _NONE REAL STRING Id */
  1755.       else {
  1756.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1757.       }
  1758.       xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /*  */
  1759. /* line 213 "eiffel_mey.ell" */
  1760.  Class_header0->Tree = mDeferred_class(Class_name1.Tree);            
  1761.       goto xx5;
  1762.     case 53 /* expanded */ :; 
  1763.       expanded1 =       EiffelScan_Attribute;
  1764.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1765.       if (xxToken != 42 /* 'class' */)
  1766.         xxRecoveryLiteral (42, 20, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER 'class' DOUBLE INTEGER _NONE REAL STRING Id */
  1767.       else {
  1768.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1769.       }
  1770.       xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /*  */
  1771. /* line 214 "eiffel_mey.ell" */
  1772.  Class_header0->Tree = mExpanded_class(Class_name1.Tree);            
  1773.       goto xx5;
  1774.     case 42 /* 'class' */ :; 
  1775.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1776.       xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /*  */
  1777. /* line 215 "eiffel_mey.ell" */
  1778.  Class_header0->Tree = mClass(Class_name1.Tree);                
  1779.       goto xx5;
  1780.     case 43:;
  1781.     case 44:;
  1782.     case 45:;
  1783.     case 47:;
  1784.     case 48:;
  1785.     case 49:;
  1786.     case 50:;
  1787.     case 51:;
  1788.     case 52:;
  1789.     default:
  1790.       if (xxIsRepairMode) {
  1791.         if (xxToken != 42 /* 'class' */)
  1792.           xxRecoveryLiteral (42, 20, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER 'class' DOUBLE INTEGER _NONE REAL STRING Id */
  1793.         else {
  1794.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1795.         }
  1796.         xxUnion.xxLocalRecoverySet = 0; yyClass_name (& Class_name1, & xxUnion); /*  */
  1797. /* line 215 "eiffel_mey.ell" */
  1798.  Class_header0->Tree = mClass(Class_name1.Tree);                
  1799.         goto xx5;
  1800.       }
  1801.       xxExpected (22, 22, xxGlobalRecoverySet); /*  'class' deferred expanded /  'class' deferred expanded */
  1802.     }
  1803.   }
  1804.   xx5:;
  1805. }
  1806.  
  1807. static void yyClass_name
  1808. # if defined __STDC__ | defined __cplusplus
  1809. (ParserMEY_tParsAttribute * Class_name0, xxtUnionPtr xxGlobalRecoverySet)
  1810. # else
  1811. (Class_name0, xxGlobalRecoverySet)
  1812. ParserMEY_tParsAttribute    * Class_name0;
  1813. xxtUnionPtr    xxGlobalRecoverySet;
  1814. # endif
  1815. {
  1816.   ParserMEY_tParsAttribute Formal_generic_name1;
  1817.   xxtUnion xxUnion;
  1818.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1819.   xxUnion.xxLocalRecoverySet = 0; yyFormal_generic_name (& Formal_generic_name1, & xxUnion); /*  */
  1820. /* line 219 "eiffel_mey.ell" */
  1821.  Class_name0->Tree = Formal_generic_name1.Tree;                    
  1822. }
  1823.  
  1824. static void yyObsolete
  1825. # if defined __STDC__ | defined __cplusplus
  1826. (ParserMEY_tParsAttribute * Obsolete0, xxtUnionPtr xxGlobalRecoverySet)
  1827. # else
  1828. (Obsolete0, xxGlobalRecoverySet)
  1829. ParserMEY_tParsAttribute    * Obsolete0;
  1830. xxtUnionPtr    xxGlobalRecoverySet;
  1831. # endif
  1832. {
  1833.   ParserMEY_tParsAttribute Message1;
  1834.   xxtUnion xxUnion;
  1835.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1836.   if (xxToken != 73 /* 'obsolete' */)
  1837.     xxRecoveryLiteral (73, 23, xxGlobalRecoverySet); /*  Manifest_string 'obsolete' */
  1838.   else {
  1839.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1840.   }
  1841. /* line 224 "eiffel_mey.ell" */
  1842.  comment_ref = no_comment;                                
  1843.   xxUnion.xxLocalRecoverySet = 0; yyMessage (& Message1, & xxUnion); /*  */
  1844. /* line 225 "eiffel_mey.ell" */
  1845.  Obsolete0->Tree = Message1.Tree;                             
  1846. }
  1847.  
  1848. static void yyMessage
  1849. # if defined __STDC__ | defined __cplusplus
  1850. (ParserMEY_tParsAttribute * Message0, xxtUnionPtr xxGlobalRecoverySet)
  1851. # else
  1852. (Message0, xxGlobalRecoverySet)
  1853. ParserMEY_tParsAttribute    * Message0;
  1854. xxtUnionPtr    xxGlobalRecoverySet;
  1855. # endif
  1856. {
  1857.     EiffelScan_tScanAttribute Manifest_string1;
  1858.   if (xxToken != 5 /* Manifest_string */)
  1859.     xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string */
  1860.   else {
  1861.     Manifest_string1 =   EiffelScan_Attribute;
  1862.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1863.   }
  1864. /* line 230 "eiffel_mey.ell" */
  1865.  Message0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position);    
  1866. }
  1867.  
  1868. static void yyFeatures
  1869. # if defined __STDC__ | defined __cplusplus
  1870. (ParserMEY_tParsAttribute * Features0, xxtUnionPtr xxGlobalRecoverySet)
  1871. # else
  1872. (Features0, xxGlobalRecoverySet)
  1873. ParserMEY_tParsAttribute    * Features0;
  1874. xxtUnionPtr    xxGlobalRecoverySet;
  1875. # endif
  1876. {
  1877.   ParserMEY_tParsAttribute Feature_clause1;
  1878.   xxtUnion xxUnion;
  1879.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1880. /* line 234 "eiffel_mey.ell" */
  1881.  Features0->Tree = mFeatures0();                            
  1882.   if (xxToken != 57 /* 'feature' */)
  1883.     xxRecoveryLiteral (57, 25, xxGlobalRecoverySet); /*  '{' 'feature' 'frozen' infix prefix Id */
  1884.   else {
  1885.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1886.   }
  1887.   for (;;) {
  1888.     xxUnion.xxLocalRecoverySet = 26; yyFeature_clause (& Feature_clause1, & xxUnion); /*  'feature' */
  1889. /* line 236 "eiffel_mey.ell" */
  1890.  Features0->Tree = mFeatures1(Feature_clause1.Tree, Features0->Tree);            
  1891.     if (! ((xxToken == 57 /* 'feature' */))) {
  1892.       if ((xxVerticalSet [xxToken] & 1 << 6 /*  'end' 'invariant' */)) break;
  1893.       xxExpected (26, 25, xxGlobalRecoverySet); /*  'feature' /  '{' 'feature' 'frozen' infix prefix Id */
  1894.       if (! ((xxToken == 57 /* 'feature' */) || (xxVerticalSet [xxToken + 108] & 1 << 2 /*  '{' 'feature' 'frozen' infix prefix Id */))) break;
  1895.     }
  1896.     if (xxToken != 57 /* 'feature' */)
  1897.       xxRecoveryLiteral (57, 25, xxGlobalRecoverySet); /*  '{' 'feature' 'frozen' infix prefix Id */
  1898.     else {
  1899.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1900.     }
  1901.   }
  1902. }
  1903.  
  1904. static void yyFeature_clause
  1905. # if defined __STDC__ | defined __cplusplus
  1906. (ParserMEY_tParsAttribute * Feature_clause0, xxtUnionPtr xxGlobalRecoverySet)
  1907. # else
  1908. (Feature_clause0, xxGlobalRecoverySet)
  1909. ParserMEY_tParsAttribute    * Feature_clause0;
  1910. xxtUnionPtr    xxGlobalRecoverySet;
  1911. # endif
  1912. {
  1913.   ParserMEY_tParsAttribute Clients1;
  1914.   ParserMEY_tParsAttribute Feature_declaration_list1;
  1915.   xxtUnion xxUnion;
  1916.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1917. /* line 240 "eiffel_mey.ell" */
  1918.  Feature_clause0->Tree = mFeature_clause(mClients0(), no_comment, mFeature_decls0());    
  1919.   for (;;) {
  1920.     if ((xxToken == 21 /* '{' */)) {
  1921.       xxUnion.xxLocalRecoverySet = 28; yyClients (& Clients1, & xxUnion); /*  'frozen' infix prefix Id */
  1922. /* line 241 "eiffel_mey.ell" */
  1923.  Feature_clause0->Tree->Feature_clause.Clients = Clients1.Tree;            
  1924.       break;
  1925.     } else if ((xxVerticalSet [xxToken + 108] & 1 << 3 /*  'end' 'feature' 'frozen' infix 'invariant' prefix Id */) || xxIsRepairMode) break;
  1926.     xxExpected (27, 27, xxGlobalRecoverySet); /*  '{' 'frozen' infix prefix Id /  '{' 'frozen' infix prefix Id */
  1927.   }
  1928. /* line 242 "eiffel_mey.ell" */
  1929.  Feature_clause0->Tree->Feature_clause.comment = comment_ref;                
  1930.   xxUnion.xxLocalRecoverySet = 0; yyFeature_declaration_list (& Feature_declaration_list1, & xxUnion); /*  */
  1931. /* line 243 "eiffel_mey.ell" */
  1932.  Feature_clause0->Tree->Feature_clause.Feature_decls = 
  1933.                             ReverseTree(Feature_declaration_list1.Tree);         
  1934. }
  1935.  
  1936. static void yyFeature_declaration_list
  1937. # if defined __STDC__ | defined __cplusplus
  1938. (ParserMEY_tParsAttribute * Feature_declaration_list0, xxtUnionPtr xxGlobalRecoverySet)
  1939. # else
  1940. (Feature_declaration_list0, xxGlobalRecoverySet)
  1941. ParserMEY_tParsAttribute    * Feature_declaration_list0;
  1942. xxtUnionPtr    xxGlobalRecoverySet;
  1943. # endif
  1944. {
  1945.   ParserMEY_tParsAttribute Feature_declaration1, Feature_declaration2;
  1946.   xxtUnion xxUnion;
  1947.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1948. /* line 247 "eiffel_mey.ell" */
  1949.  Feature_declaration_list0->Tree = mFeature_decls0();                
  1950.   for (;;) {
  1951.     if ((xxVerticalSet [xxToken + 108] & 1 << 4 /*  'frozen' infix prefix Id */)) {
  1952.       xxUnion.xxLocalRecoverySet = 29; yyFeature_declaration (& Feature_declaration1, & xxUnion); /*  ';' 'frozen' infix prefix Id */
  1953. /* line 248 "eiffel_mey.ell" */
  1954.  Feature_declaration_list0->Tree = mFeature_decls1(Feature_declaration1.Tree, 
  1955.                                 Feature_declaration_list0->Tree);         
  1956.       for (;;) {
  1957.         if ((xxVerticalSet [xxToken + 108] & 1 << 5 /*  ';' 'frozen' infix prefix Id */)) {
  1958.           for (;;) {
  1959.             if ((xxToken == 7 /* ';' */)) {
  1960.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  1961.               break;
  1962.             } else if ((xxVerticalSet [xxToken + 108] & 1 << 4 /*  'frozen' infix prefix Id */) || xxIsRepairMode) break;
  1963.             xxExpected (29, 29, xxGlobalRecoverySet); /*  ';' 'frozen' infix prefix Id /  ';' 'frozen' infix prefix Id */
  1964.           }
  1965.           xxUnion.xxLocalRecoverySet = 0; yyFeature_declaration (& Feature_declaration2, & xxUnion); /*  */
  1966. /* line 250 "eiffel_mey.ell" */
  1967.  Feature_declaration_list0->Tree = mFeature_decls1(Feature_declaration2.Tree,
  1968.                                 Feature_declaration_list0->Tree);         
  1969.         } else if ((xxVerticalSet [xxToken] & 1 << 5 /*  'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  1970.         else
  1971.           xxExpected (29, 29, xxGlobalRecoverySet); /*  ';' 'frozen' infix prefix Id /  ';' 'frozen' infix prefix Id */
  1972.       }
  1973.       break;
  1974.     } else if ((xxVerticalSet [xxToken] & 1 << 5 /*  'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  1975.     xxExpected (28, 28, xxGlobalRecoverySet); /*  'frozen' infix prefix Id /  'frozen' infix prefix Id */
  1976.   }
  1977. }
  1978.  
  1979. static void yyFeature_declaration
  1980. # if defined __STDC__ | defined __cplusplus
  1981. (ParserMEY_tParsAttribute * Feature_declaration0, xxtUnionPtr xxGlobalRecoverySet)
  1982. # else
  1983. (Feature_declaration0, xxGlobalRecoverySet)
  1984. ParserMEY_tParsAttribute    * Feature_declaration0;
  1985. xxtUnionPtr    xxGlobalRecoverySet;
  1986. # endif
  1987. {
  1988.   ParserMEY_tParsAttribute New_feature_list1;
  1989.   ParserMEY_tParsAttribute Declaration_body1;
  1990.   xxtUnion xxUnion;
  1991.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  1992.   xxUnion.xxLocalRecoverySet = 30; yyNew_feature_list (& New_feature_list1, & xxUnion); /*  ':' '(' 'is' */
  1993.   xxUnion.xxLocalRecoverySet = 0; yyDeclaration_body (& Declaration_body1, & xxUnion); /*  */
  1994. /* line 256 "eiffel_mey.ell" */
  1995.  Feature_declaration0->Tree = mFeature_decl(ReverseTree(New_feature_list1.Tree), 
  1996.                                     Declaration_body1.Tree);        
  1997. }
  1998.  
  1999. static void yyDeclaration_body
  2000. # if defined __STDC__ | defined __cplusplus
  2001. (ParserMEY_tParsAttribute * Declaration_body0, xxtUnionPtr xxGlobalRecoverySet)
  2002. # else
  2003. (Declaration_body0, xxGlobalRecoverySet)
  2004. ParserMEY_tParsAttribute    * Declaration_body0;
  2005. xxtUnionPtr    xxGlobalRecoverySet;
  2006. # endif
  2007. {
  2008.   ParserMEY_tParsAttribute Formal_arguments1;
  2009.   ParserMEY_tParsAttribute Type_mark1;
  2010.   ParserMEY_tParsAttribute Constant_or_routine1;
  2011.   xxtUnion xxUnion;
  2012.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2013. /* line 260 "eiffel_mey.ell" */
  2014.  Declaration_body0->Tree = mDeclaration_body(mFormal_args0(), mType0(), mConst_or_routine0());    
  2015.   for (;;) {
  2016.     if ((xxToken == 17 /* '(' */)) {
  2017.       xxUnion.xxLocalRecoverySet = 31; yyFormal_arguments (& Formal_arguments1, & xxUnion); /*  ':' 'is' */
  2018. /* line 261 "eiffel_mey.ell" */
  2019.  Declaration_body0->Tree->Declaration_body.Formal_args = Formal_arguments1.Tree;    
  2020.       break;
  2021.     } else if ((xxVerticalSet [xxToken + 108] & 1 << 6 /*  ';' ':' 'end' 'feature' 'frozen' infix 'invariant' 'is' prefix Id */) || xxIsRepairMode) break;
  2022.     xxExpected (30, 30, xxGlobalRecoverySet); /*  ':' '(' 'is' /  ':' '(' 'is' */
  2023.   }
  2024.   for (;;) {
  2025.     if ((xxToken == 9 /* ':' */)) {
  2026.       xxUnion.xxLocalRecoverySet = 32; yyType_mark (& Type_mark1, & xxUnion); /*  'is' */
  2027. /* line 262 "eiffel_mey.ell" */
  2028.  Declaration_body0->Tree->Declaration_body.Type_mark = Type_mark1.Tree;        
  2029.       break;
  2030.     } else if ((xxVerticalSet [xxToken + 108] & 1 << 7 /*  ';' 'end' 'feature' 'frozen' infix 'invariant' 'is' prefix Id */) || xxIsRepairMode) break;
  2031.     xxExpected (31, 31, xxGlobalRecoverySet); /*  ':' 'is' /  ':' 'is' */
  2032.   }
  2033.   for (;;) {
  2034.     if ((xxToken == 68 /* 'is' */)) {
  2035.       xxUnion.xxLocalRecoverySet = 0; yyConstant_or_routine (& Constant_or_routine1, & xxUnion); /*  */
  2036. /* line 263 "eiffel_mey.ell" */
  2037.  Declaration_body0->Tree->Declaration_body.Const_or_routine = Constant_or_routine1.Tree; 
  2038.       break;
  2039.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 0 /*  ';' 'end' 'feature' 'frozen' infix 'invariant' prefix Id */) || xxIsRepairMode) break;
  2040.     xxExpected (32, 32, xxGlobalRecoverySet); /*  'is' /  'is' */
  2041.   }
  2042. }
  2043.  
  2044. static void yyConstant_or_routine
  2045. # if defined __STDC__ | defined __cplusplus
  2046. (ParserMEY_tParsAttribute * Constant_or_routine0, xxtUnionPtr xxGlobalRecoverySet)
  2047. # else
  2048. (Constant_or_routine0, xxGlobalRecoverySet)
  2049. ParserMEY_tParsAttribute    * Constant_or_routine0;
  2050. xxtUnionPtr    xxGlobalRecoverySet;
  2051. # endif
  2052. {
  2053.   ParserMEY_tParsAttribute Feature_value1;
  2054.   xxtUnion xxUnion;
  2055.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2056. /* line 266 "eiffel_mey.ell" */
  2057.  comment_ref = no_comment;                                
  2058.   if (xxToken != 68 /* 'is' */)
  2059.     xxRecoveryLiteral (68, 33, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus deferred do 'external' false 'is' 'local' 'obsolete' once 'require' true unique */
  2060.   else {
  2061.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2062.   }
  2063.   xxUnion.xxLocalRecoverySet = 0; yyFeature_value (& Feature_value1, & xxUnion); /*  */
  2064. /* line 267 "eiffel_mey.ell" */
  2065.  Constant_or_routine0->Tree = Feature_value1.Tree;                    
  2066. }
  2067.  
  2068. static void yyFeature_value
  2069. # if defined __STDC__ | defined __cplusplus
  2070. (ParserMEY_tParsAttribute * Feature_value0, xxtUnionPtr xxGlobalRecoverySet)
  2071. # else
  2072. (Feature_value0, xxGlobalRecoverySet)
  2073. ParserMEY_tParsAttribute    * Feature_value0;
  2074. xxtUnionPtr    xxGlobalRecoverySet;
  2075. # endif
  2076. {
  2077.   ParserMEY_tParsAttribute Manifest_constant1;
  2078.   ParserMEY_tParsAttribute Unique1;
  2079.   ParserMEY_tParsAttribute Routine1;
  2080.   xxtUnion xxUnion;
  2081.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2082.   for (;;) {
  2083.     switch (xxToken) {
  2084.     case 1 /* Character_constant */ :; 
  2085.     case 2 /* Bit_sequence */ :; 
  2086.     case 3 /* Integer */ :; 
  2087.     case 4 /* Real */ :; 
  2088.     case 5 /* Manifest_string */ :; 
  2089.     case 7 /* ';' */ :; 
  2090.     case 29 /* plus */ :; 
  2091.     case 30 /* minus */ :; 
  2092.     case 51 /* 'end' */ :; 
  2093.     case 56 /* false */ :; 
  2094.     case 57 /* 'feature' */ :; 
  2095.     case 59 /* 'frozen' */ :; 
  2096.     case 63 /* infix */ :; 
  2097.     case 67 /* 'invariant' */ :; 
  2098.     case 77 /* prefix */ :; 
  2099.     case 90 /* true */ :; 
  2100.     case 106 /* Id */ :; 
  2101.       xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  2102. /* line 271 "eiffel_mey.ell" */
  2103.  Feature_value0->Tree = mM_const(Manifest_constant1.Tree);                
  2104.       goto xx6;
  2105.     case 92 /* unique */ :; 
  2106.       xxUnion.xxLocalRecoverySet = 0; yyUnique (& Unique1, & xxUnion); /*  */
  2107. /* line 272 "eiffel_mey.ell" */
  2108.  Feature_value0->Tree = Unique1.Tree;                            
  2109.       goto xx6;
  2110.     case 46 /* deferred */ :; 
  2111.     case 47 /* do */ :; 
  2112.     case 55 /* 'external' */ :; 
  2113.     case 70 /* 'local' */ :; 
  2114.     case 73 /* 'obsolete' */ :; 
  2115.     case 75 /* once */ :; 
  2116.     case 81 /* 'require' */ :; 
  2117.       xxUnion.xxLocalRecoverySet = 0; yyRoutine (& Routine1, & xxUnion); /*  */
  2118. /* line 273 "eiffel_mey.ell" */
  2119.  Feature_value0->Tree = Routine1.Tree;                            
  2120.       goto xx6;
  2121.     case 6:;
  2122.     case 8:;
  2123.     case 9:;
  2124.     case 10:;
  2125.     case 11:;
  2126.     case 12:;
  2127.     case 13:;
  2128.     case 14:;
  2129.     case 15:;
  2130.     case 16:;
  2131.     case 17:;
  2132.     case 18:;
  2133.     case 19:;
  2134.     case 20:;
  2135.     case 21:;
  2136.     case 22:;
  2137.     case 23:;
  2138.     case 24:;
  2139.     case 25:;
  2140.     case 26:;
  2141.     case 27:;
  2142.     case 28:;
  2143.     case 31:;
  2144.     case 32:;
  2145.     case 33:;
  2146.     case 34:;
  2147.     case 35:;
  2148.     case 36:;
  2149.     case 37:;
  2150.     case 38:;
  2151.     case 39:;
  2152.     case 40:;
  2153.     case 41:;
  2154.     case 42:;
  2155.     case 43:;
  2156.     case 44:;
  2157.     case 45:;
  2158.     case 48:;
  2159.     case 49:;
  2160.     case 50:;
  2161.     case 52:;
  2162.     case 53:;
  2163.     case 54:;
  2164.     case 58:;
  2165.     case 60:;
  2166.     case 61:;
  2167.     case 62:;
  2168.     case 64:;
  2169.     case 65:;
  2170.     case 66:;
  2171.     case 68:;
  2172.     case 69:;
  2173.     case 71:;
  2174.     case 72:;
  2175.     case 74:;
  2176.     case 76:;
  2177.     case 78:;
  2178.     case 79:;
  2179.     case 80:;
  2180.     case 82:;
  2181.     case 83:;
  2182.     case 84:;
  2183.     case 85:;
  2184.     case 86:;
  2185.     case 87:;
  2186.     case 88:;
  2187.     case 89:;
  2188.     case 91:;
  2189.     case 93:;
  2190.     case 94:;
  2191.     case 95:;
  2192.     case 96:;
  2193.     case 97:;
  2194.     case 98:;
  2195.     case 99:;
  2196.     case 100:;
  2197.     case 101:;
  2198.     case 102:;
  2199.     case 103:;
  2200.     case 104:;
  2201.     case 105:;
  2202.     default:
  2203.       if (xxIsRepairMode) {
  2204.         xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  2205. /* line 271 "eiffel_mey.ell" */
  2206.  Feature_value0->Tree = mM_const(Manifest_constant1.Tree);                
  2207.         goto xx6;
  2208.       }
  2209. xxUnexpected (34, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus deferred do 'external' false 'local' 'obsolete' once 'require' true unique */
  2210.     }
  2211.   }
  2212.   xx6:;
  2213. }
  2214.  
  2215. static void yyNew_feature_list
  2216. # if defined __STDC__ | defined __cplusplus
  2217. (ParserMEY_tParsAttribute * New_feature_list0, xxtUnionPtr xxGlobalRecoverySet)
  2218. # else
  2219. (New_feature_list0, xxGlobalRecoverySet)
  2220. ParserMEY_tParsAttribute    * New_feature_list0;
  2221. xxtUnionPtr    xxGlobalRecoverySet;
  2222. # endif
  2223. {
  2224.   ParserMEY_tParsAttribute New_feature1;
  2225.   xxtUnion xxUnion;
  2226.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2227. /* line 278 "eiffel_mey.ell" */
  2228.  New_feature_list0->Tree = mNew_feature_list0();                    
  2229.   for (;;) {
  2230.     xxUnion.xxLocalRecoverySet = 16; yyNew_feature (& New_feature1, & xxUnion); /*  ',' */
  2231. /* line 279 "eiffel_mey.ell" */
  2232.  New_feature_list0->Tree = mNew_feature_list1(New_feature1.Tree, New_feature_list0->Tree);
  2233.     if (! ((xxToken == 8 /* ',' */))) {
  2234.       if ((xxVerticalSet [xxToken + 216] & 1 << 1 /*  ';' ':' '(' 'end' 'feature' 'frozen' infix 'invariant' 'is' prefix Id */)) break;
  2235.       xxExpected (35, 35, xxGlobalRecoverySet); /*  ',' 'frozen' infix prefix Id /  ',' 'frozen' infix prefix Id */
  2236.       if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 108] & 1 << 4 /*  'frozen' infix prefix Id */))) break;
  2237.     }
  2238.     if (xxToken != 8 /* ',' */)
  2239.       xxRecoveryLiteral (8, 35, xxGlobalRecoverySet); /*  ',' 'frozen' infix prefix Id */
  2240.     else {
  2241.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2242.     }
  2243.   }
  2244. }
  2245.  
  2246. static void yyNew_feature
  2247. # if defined __STDC__ | defined __cplusplus
  2248. (ParserMEY_tParsAttribute * New_feature0, xxtUnionPtr xxGlobalRecoverySet)
  2249. # else
  2250. (New_feature0, xxGlobalRecoverySet)
  2251. ParserMEY_tParsAttribute    * New_feature0;
  2252. xxtUnionPtr    xxGlobalRecoverySet;
  2253. # endif
  2254. {
  2255.   ParserMEY_tParsAttribute Feature_name1;
  2256.   xxtUnion xxUnion;
  2257.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2258.   for (;;) {
  2259.     switch (xxToken) {
  2260.     case 59 /* 'frozen' */ :; 
  2261.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2262.       xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name1, & xxUnion); /*  */
  2263. /* line 284 "eiffel_mey.ell" */
  2264.  New_feature0->Tree = mFrozen(Feature_name1.Tree);                    
  2265.       goto xx7;
  2266.     case 63 /* infix */ :; 
  2267.     case 77 /* prefix */ :; 
  2268.     case 106 /* Id */ :; 
  2269.       xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name1, & xxUnion); /*  */
  2270. /* line 285 "eiffel_mey.ell" */
  2271.  New_feature0->Tree = Feature_name1.Tree;                         
  2272.       goto xx7;
  2273.     case 60:;
  2274.     case 61:;
  2275.     case 62:;
  2276.     case 64:;
  2277.     case 65:;
  2278.     case 66:;
  2279.     case 67:;
  2280.     case 68:;
  2281.     case 69:;
  2282.     case 70:;
  2283.     case 71:;
  2284.     case 72:;
  2285.     case 73:;
  2286.     case 74:;
  2287.     case 75:;
  2288.     case 76:;
  2289.     case 78:;
  2290.     case 79:;
  2291.     case 80:;
  2292.     case 81:;
  2293.     case 82:;
  2294.     case 83:;
  2295.     case 84:;
  2296.     case 85:;
  2297.     case 86:;
  2298.     case 87:;
  2299.     case 88:;
  2300.     case 89:;
  2301.     case 90:;
  2302.     case 91:;
  2303.     case 92:;
  2304.     case 93:;
  2305.     case 94:;
  2306.     case 95:;
  2307.     case 96:;
  2308.     case 97:;
  2309.     case 98:;
  2310.     case 99:;
  2311.     case 100:;
  2312.     case 101:;
  2313.     case 102:;
  2314.     case 103:;
  2315.     case 104:;
  2316.     case 105:;
  2317.     default:
  2318.       if (xxIsRepairMode) {
  2319.         xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name1, & xxUnion); /*  */
  2320. /* line 285 "eiffel_mey.ell" */
  2321.  New_feature0->Tree = Feature_name1.Tree;                         
  2322.         goto xx7;
  2323.       }
  2324.       xxExpected (28, 28, xxGlobalRecoverySet); /*  'frozen' infix prefix Id /  'frozen' infix prefix Id */
  2325.     }
  2326.   }
  2327.   xx7:;
  2328. }
  2329.  
  2330. static void yyFeature_name
  2331. # if defined __STDC__ | defined __cplusplus
  2332. (ParserMEY_tParsAttribute * Feature_name0, xxtUnionPtr xxGlobalRecoverySet)
  2333. # else
  2334. (Feature_name0, xxGlobalRecoverySet)
  2335. ParserMEY_tParsAttribute    * Feature_name0;
  2336. xxtUnionPtr    xxGlobalRecoverySet;
  2337. # endif
  2338. {
  2339.   ParserMEY_tParsAttribute Identifier1;
  2340.   ParserMEY_tParsAttribute Prefix1;
  2341.   ParserMEY_tParsAttribute Infix1;
  2342.   xxtUnion xxUnion;
  2343.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2344.   for (;;) {
  2345.     switch (xxToken) {
  2346.     case 106 /* Id */ :; 
  2347.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  2348. /* line 290 "eiffel_mey.ell" */
  2349.  Feature_name0->Tree = mIdent_name(Identifier1.Tree);                    
  2350.       goto xx8;
  2351.     case 77 /* prefix */ :; 
  2352.       xxUnion.xxLocalRecoverySet = 0; yyPrefix (& Prefix1, & xxUnion); /*  */
  2353. /* line 291 "eiffel_mey.ell" */
  2354.  Feature_name0->Tree = Prefix1.Tree;                            
  2355.       goto xx8;
  2356.     case 63 /* infix */ :; 
  2357.       xxUnion.xxLocalRecoverySet = 0; yyInfix (& Infix1, & xxUnion); /*  */
  2358. /* line 292 "eiffel_mey.ell" */
  2359.  Feature_name0->Tree = Infix1.Tree;                            
  2360.       goto xx8;
  2361.     case 64:;
  2362.     case 65:;
  2363.     case 66:;
  2364.     case 67:;
  2365.     case 68:;
  2366.     case 69:;
  2367.     case 70:;
  2368.     case 71:;
  2369.     case 72:;
  2370.     case 73:;
  2371.     case 74:;
  2372.     case 75:;
  2373.     case 76:;
  2374.     case 78:;
  2375.     case 79:;
  2376.     case 80:;
  2377.     case 81:;
  2378.     case 82:;
  2379.     case 83:;
  2380.     case 84:;
  2381.     case 85:;
  2382.     case 86:;
  2383.     case 87:;
  2384.     case 88:;
  2385.     case 89:;
  2386.     case 90:;
  2387.     case 91:;
  2388.     case 92:;
  2389.     case 93:;
  2390.     case 94:;
  2391.     case 95:;
  2392.     case 96:;
  2393.     case 97:;
  2394.     case 98:;
  2395.     case 99:;
  2396.     case 100:;
  2397.     case 101:;
  2398.     case 102:;
  2399.     case 103:;
  2400.     case 104:;
  2401.     case 105:;
  2402.     default:
  2403.       if (xxIsRepairMode) {
  2404.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  2405. /* line 290 "eiffel_mey.ell" */
  2406.  Feature_name0->Tree = mIdent_name(Identifier1.Tree);                    
  2407.         goto xx8;
  2408.       }
  2409.       xxExpected (36, 36, xxGlobalRecoverySet); /*  infix prefix Id /  infix prefix Id */
  2410.     }
  2411.   }
  2412.   xx8:;
  2413. }
  2414.  
  2415. static void yyPrefix
  2416. # if defined __STDC__ | defined __cplusplus
  2417. (ParserMEY_tParsAttribute * Prefix0, xxtUnionPtr xxGlobalRecoverySet)
  2418. # else
  2419. (Prefix0, xxGlobalRecoverySet)
  2420. ParserMEY_tParsAttribute    * Prefix0;
  2421. xxtUnionPtr    xxGlobalRecoverySet;
  2422. # endif
  2423. {
  2424.     EiffelScan_tScanAttribute prefix1;
  2425.   ParserMEY_tParsAttribute Prefix_operator1;
  2426.   xxtUnion xxUnion;
  2427.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2428.   if (xxToken != 77 /* prefix */)
  2429.     xxRecoveryTerminal (77, 37, xxGlobalRecoverySet, & prefix1); /*  Free_op plus minus prefix not */
  2430.   else {
  2431.     prefix1 =   EiffelScan_Attribute;
  2432.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2433.   }
  2434.   xxUnion.xxLocalRecoverySet = 0; yyPrefix_operator (& Prefix_operator1, & xxUnion); /*  */
  2435. /* line 296 "eiffel_mey.ell" */
  2436.  Prefix0->Tree = Prefix_operator1.Tree;                
  2437. }
  2438.  
  2439. static void yyInfix
  2440. # if defined __STDC__ | defined __cplusplus
  2441. (ParserMEY_tParsAttribute * Infix0, xxtUnionPtr xxGlobalRecoverySet)
  2442. # else
  2443. (Infix0, xxGlobalRecoverySet)
  2444. ParserMEY_tParsAttribute    * Infix0;
  2445. xxtUnionPtr    xxGlobalRecoverySet;
  2446. # endif
  2447. {
  2448.     EiffelScan_tScanAttribute infix1;
  2449.   ParserMEY_tParsAttribute Infix_operator1;
  2450.   xxtUnion xxUnion;
  2451.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2452.   if (xxToken != 63 /* infix */)
  2453.     xxRecoveryTerminal (63, 38, xxGlobalRecoverySet, & infix1); /*  Free_op plus minus div and implies infix or xor times smaller greater sm_eq gr_eq idiv imod power */
  2454.   else {
  2455.     infix1 =   EiffelScan_Attribute;
  2456.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2457.   }
  2458.   xxUnion.xxLocalRecoverySet = 0; yyInfix_operator (& Infix_operator1, & xxUnion); /*  */
  2459. /* line 300 "eiffel_mey.ell" */
  2460.  Infix0->Tree = Infix_operator1.Tree;                    
  2461. }
  2462.  
  2463. static void yyPrefix_operator
  2464. # if defined __STDC__ | defined __cplusplus
  2465. (ParserMEY_tParsAttribute * Prefix_operator0, xxtUnionPtr xxGlobalRecoverySet)
  2466. # else
  2467. (Prefix_operator0, xxGlobalRecoverySet)
  2468. ParserMEY_tParsAttribute    * Prefix_operator0;
  2469. xxtUnionPtr    xxGlobalRecoverySet;
  2470. # endif
  2471. {
  2472.     EiffelScan_tScanAttribute Free_op1;
  2473.   ParserMEY_tParsAttribute Unary1;
  2474.   xxtUnion xxUnion;
  2475.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2476.   for (;;) {
  2477.     switch (xxToken) {
  2478.     case 29 /* plus */ :; 
  2479.     case 30 /* minus */ :; 
  2480.     case 105 /* not */ :; 
  2481.       xxUnion.xxLocalRecoverySet = 0; yyUnary (& Unary1, & xxUnion); /*  */
  2482. /* line 304 "eiffel_mey.ell" */
  2483.  Prefix_operator0->Tree = mPrefix(Unary1.Tree);                    
  2484.       goto xx9;
  2485.     case 6 /* Free_op */ :; 
  2486.       Free_op1 =       EiffelScan_Attribute;
  2487.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2488. /* line 305 "eiffel_mey.ell" */
  2489.  Prefix_operator0->Tree = mPrefix(mFree_op(Free_op1.Position, Free_op1.Ident));     
  2490.       goto xx9;
  2491.     case 7:;
  2492.     case 8:;
  2493.     case 9:;
  2494.     case 10:;
  2495.     case 11:;
  2496.     case 12:;
  2497.     case 13:;
  2498.     case 14:;
  2499.     case 15:;
  2500.     case 16:;
  2501.     case 17:;
  2502.     case 18:;
  2503.     case 19:;
  2504.     case 20:;
  2505.     case 21:;
  2506.     case 22:;
  2507.     case 23:;
  2508.     case 24:;
  2509.     case 25:;
  2510.     case 26:;
  2511.     case 27:;
  2512.     case 28:;
  2513.     case 31:;
  2514.     case 32:;
  2515.     case 33:;
  2516.     case 34:;
  2517.     case 35:;
  2518.     case 36:;
  2519.     case 37:;
  2520.     case 38:;
  2521.     case 39:;
  2522.     case 40:;
  2523.     case 41:;
  2524.     case 42:;
  2525.     case 43:;
  2526.     case 44:;
  2527.     case 45:;
  2528.     case 46:;
  2529.     case 47:;
  2530.     case 48:;
  2531.     case 49:;
  2532.     case 50:;
  2533.     case 51:;
  2534.     case 52:;
  2535.     case 53:;
  2536.     case 54:;
  2537.     case 55:;
  2538.     case 56:;
  2539.     case 57:;
  2540.     case 58:;
  2541.     case 59:;
  2542.     case 60:;
  2543.     case 61:;
  2544.     case 62:;
  2545.     case 63:;
  2546.     case 64:;
  2547.     case 65:;
  2548.     case 66:;
  2549.     case 67:;
  2550.     case 68:;
  2551.     case 69:;
  2552.     case 70:;
  2553.     case 71:;
  2554.     case 72:;
  2555.     case 73:;
  2556.     case 74:;
  2557.     case 75:;
  2558.     case 76:;
  2559.     case 77:;
  2560.     case 78:;
  2561.     case 79:;
  2562.     case 80:;
  2563.     case 81:;
  2564.     case 82:;
  2565.     case 83:;
  2566.     case 84:;
  2567.     case 85:;
  2568.     case 86:;
  2569.     case 87:;
  2570.     case 88:;
  2571.     case 89:;
  2572.     case 90:;
  2573.     case 91:;
  2574.     case 92:;
  2575.     case 93:;
  2576.     case 94:;
  2577.     case 95:;
  2578.     case 96:;
  2579.     case 97:;
  2580.     case 98:;
  2581.     case 99:;
  2582.     case 100:;
  2583.     case 101:;
  2584.     case 102:;
  2585.     case 103:;
  2586.     case 104:;
  2587.     default:
  2588.       if (xxIsRepairMode) {
  2589.         xxUnion.xxLocalRecoverySet = 0; yyUnary (& Unary1, & xxUnion); /*  */
  2590. /* line 304 "eiffel_mey.ell" */
  2591.  Prefix_operator0->Tree = mPrefix(Unary1.Tree);                    
  2592.         goto xx9;
  2593.       }
  2594.       xxExpected (40, 40, xxGlobalRecoverySet); /*  Free_op plus minus not /  Free_op plus minus not */
  2595.     }
  2596.   }
  2597.   xx9:;
  2598. }
  2599.  
  2600. static void yyInfix_operator
  2601. # if defined __STDC__ | defined __cplusplus
  2602. (ParserMEY_tParsAttribute * Infix_operator0, xxtUnionPtr xxGlobalRecoverySet)
  2603. # else
  2604. (Infix_operator0, xxGlobalRecoverySet)
  2605. ParserMEY_tParsAttribute    * Infix_operator0;
  2606. xxtUnionPtr    xxGlobalRecoverySet;
  2607. # endif
  2608. {
  2609.     EiffelScan_tScanAttribute Free_op1;
  2610.   ParserMEY_tParsAttribute Binary1;
  2611.   xxtUnion xxUnion;
  2612.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  2613.   for (;;) {
  2614.     switch (xxToken) {
  2615.     case 29 /* plus */ :; 
  2616.     case 30 /* minus */ :; 
  2617.     case 33 /* div */ :; 
  2618.     case 36 /* and */ :; 
  2619.     case 61 /* implies */ :; 
  2620.     case 76 /* or */ :; 
  2621.     case 96 /* xor */ :; 
  2622.     case 97 /* times */ :; 
  2623.     case 98 /* smaller */ :; 
  2624.     case 99 /* greater */ :; 
  2625.     case 100 /* sm_eq */ :; 
  2626.     case 101 /* gr_eq */ :; 
  2627.     case 102 /* idiv */ :; 
  2628.     case 103 /* imod */ :; 
  2629.     case 104 /* power */ :; 
  2630.       xxUnion.xxLocalRecoverySet = 0; yyBinary (& Binary1, & xxUnion); /*  */
  2631. /* line 310 "eiffel_mey.ell" */
  2632.  Infix_operator0->Tree = mInfix(Binary1.Tree);                        
  2633.       goto xx10;
  2634.     case 6 /* Free_op */ :; 
  2635.       Free_op1 =       EiffelScan_Attribute;
  2636.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2637. /* line 311 "eiffel_mey.ell" */
  2638.  Infix_operator0->Tree = mInfix(mFree_op(Free_op1.Position, Free_op1.Ident));        
  2639.       goto xx10;
  2640.     case 7:;
  2641.     case 8:;
  2642.     case 9:;
  2643.     case 10:;
  2644.     case 11:;
  2645.     case 12:;
  2646.     case 13:;
  2647.     case 14:;
  2648.     case 15:;
  2649.     case 16:;
  2650.     case 17:;
  2651.     case 18:;
  2652.     case 19:;
  2653.     case 20:;
  2654.     case 21:;
  2655.     case 22:;
  2656.     case 23:;
  2657.     case 24:;
  2658.     case 25:;
  2659.     case 26:;
  2660.     case 27:;
  2661.     case 28:;
  2662.     case 31:;
  2663.     case 32:;
  2664.     case 34:;
  2665.     case 35:;
  2666.     case 37:;
  2667.     case 38:;
  2668.     case 39:;
  2669.     case 40:;
  2670.     case 41:;
  2671.     case 42:;
  2672.     case 43:;
  2673.     case 44:;
  2674.     case 45:;
  2675.     case 46:;
  2676.     case 47:;
  2677.     case 48:;
  2678.     case 49:;
  2679.     case 50:;
  2680.     case 51:;
  2681.     case 52:;
  2682.     case 53:;
  2683.     case 54:;
  2684.     case 55:;
  2685.     case 56:;
  2686.     case 57:;
  2687.     case 58:;
  2688.     case 59:;
  2689.     case 60:;
  2690.     case 62:;
  2691.     case 63:;
  2692.     case 64:;
  2693.     case 65:;
  2694.     case 66:;
  2695.     case 67:;
  2696.     case 68:;
  2697.     case 69:;
  2698.     case 70:;
  2699.     case 71:;
  2700.     case 72:;
  2701.     case 73:;
  2702.     case 74:;
  2703.     case 75:;
  2704.     case 77:;
  2705.     case 78:;
  2706.     case 79:;
  2707.     case 80:;
  2708.     case 81:;
  2709.     case 82:;
  2710.     case 83:;
  2711.     case 84:;
  2712.     case 85:;
  2713.     case 86:;
  2714.     case 87:;
  2715.     case 88:;
  2716.     case 89:;
  2717.     case 90:;
  2718.     case 91:;
  2719.     case 92:;
  2720.     case 93:;
  2721.     case 94:;
  2722.     case 95:;
  2723.     default:
  2724.       if (xxIsRepairMode) {
  2725.         xxUnion.xxLocalRecoverySet = 0; yyBinary (& Binary1, & xxUnion); /*  */
  2726. /* line 310 "eiffel_mey.ell" */
  2727.  Infix_operator0->Tree = mInfix(Binary1.Tree);                        
  2728.         goto xx10;
  2729.       }
  2730.       xxExpected (41, 41, xxGlobalRecoverySet); /*  Free_op plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  2731.     }
  2732.   }
  2733.   xx10:;
  2734. }
  2735.  
  2736. static void yyUnary
  2737. # if defined __STDC__ | defined __cplusplus
  2738. (ParserMEY_tParsAttribute * Unary0, xxtUnionPtr xxGlobalRecoverySet)
  2739. # else
  2740. (Unary0, xxGlobalRecoverySet)
  2741. ParserMEY_tParsAttribute    * Unary0;
  2742. xxtUnionPtr    xxGlobalRecoverySet;
  2743. # endif
  2744. {
  2745.     EiffelScan_tScanAttribute plus1;
  2746.     EiffelScan_tScanAttribute minus1;
  2747.     EiffelScan_tScanAttribute not1;
  2748.   for (;;) {
  2749.     switch (xxToken) {
  2750.     case 105 /* not */ :; 
  2751.       not1 =       EiffelScan_Attribute;
  2752.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2753. /* line 316 "eiffel_mey.ell" */
  2754.  Unary0->Tree = mOper(not1.Position, NOT);                         
  2755.       goto xx11;
  2756.     case 29 /* plus */ :; 
  2757.       plus1 =       EiffelScan_Attribute;
  2758.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2759. /* line 317 "eiffel_mey.ell" */
  2760.  Unary0->Tree = mOper(plus1.Position, PLUS);                         
  2761.       goto xx11;
  2762.     case 30 /* minus */ :; 
  2763.       minus1 =       EiffelScan_Attribute;
  2764.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2765. /* line 318 "eiffel_mey.ell" */
  2766.  Unary0->Tree = mOper(minus1.Position, MINUS);                     
  2767.       goto xx11;
  2768.     case 31:;
  2769.     case 32:;
  2770.     case 33:;
  2771.     case 34:;
  2772.     case 35:;
  2773.     case 36:;
  2774.     case 37:;
  2775.     case 38:;
  2776.     case 39:;
  2777.     case 40:;
  2778.     case 41:;
  2779.     case 42:;
  2780.     case 43:;
  2781.     case 44:;
  2782.     case 45:;
  2783.     case 46:;
  2784.     case 47:;
  2785.     case 48:;
  2786.     case 49:;
  2787.     case 50:;
  2788.     case 51:;
  2789.     case 52:;
  2790.     case 53:;
  2791.     case 54:;
  2792.     case 55:;
  2793.     case 56:;
  2794.     case 57:;
  2795.     case 58:;
  2796.     case 59:;
  2797.     case 60:;
  2798.     case 61:;
  2799.     case 62:;
  2800.     case 63:;
  2801.     case 64:;
  2802.     case 65:;
  2803.     case 66:;
  2804.     case 67:;
  2805.     case 68:;
  2806.     case 69:;
  2807.     case 70:;
  2808.     case 71:;
  2809.     case 72:;
  2810.     case 73:;
  2811.     case 74:;
  2812.     case 75:;
  2813.     case 76:;
  2814.     case 77:;
  2815.     case 78:;
  2816.     case 79:;
  2817.     case 80:;
  2818.     case 81:;
  2819.     case 82:;
  2820.     case 83:;
  2821.     case 84:;
  2822.     case 85:;
  2823.     case 86:;
  2824.     case 87:;
  2825.     case 88:;
  2826.     case 89:;
  2827.     case 90:;
  2828.     case 91:;
  2829.     case 92:;
  2830.     case 93:;
  2831.     case 94:;
  2832.     case 95:;
  2833.     case 96:;
  2834.     case 97:;
  2835.     case 98:;
  2836.     case 99:;
  2837.     case 100:;
  2838.     case 101:;
  2839.     case 102:;
  2840.     case 103:;
  2841.     case 104:;
  2842.     default:
  2843.       if (xxIsRepairMode) {
  2844.         if (xxToken != 105 /* not */)
  2845.           xxRecoveryTerminal (105, 42, xxGlobalRecoverySet, & not1); /*  not */
  2846.         else {
  2847.           not1 =         EiffelScan_Attribute;
  2848.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2849.         }
  2850. /* line 316 "eiffel_mey.ell" */
  2851.  Unary0->Tree = mOper(not1.Position, NOT);                         
  2852.         goto xx11;
  2853.       }
  2854.       xxExpected (45, 45, xxGlobalRecoverySet); /*  plus minus not /  plus minus not */
  2855.     }
  2856.   }
  2857.   xx11:;
  2858. }
  2859.  
  2860. static void yyBinary
  2861. # if defined __STDC__ | defined __cplusplus
  2862. (ParserMEY_tParsAttribute * Binary0, xxtUnionPtr xxGlobalRecoverySet)
  2863. # else
  2864. (Binary0, xxGlobalRecoverySet)
  2865. ParserMEY_tParsAttribute    * Binary0;
  2866. xxtUnionPtr    xxGlobalRecoverySet;
  2867. # endif
  2868. {
  2869.     EiffelScan_tScanAttribute plus1;
  2870.     EiffelScan_tScanAttribute minus1;
  2871.     EiffelScan_tScanAttribute div1;
  2872.     EiffelScan_tScanAttribute and1;
  2873.     EiffelScan_tScanAttribute else1;
  2874.     EiffelScan_tScanAttribute implies1;
  2875.     EiffelScan_tScanAttribute or1;
  2876.     EiffelScan_tScanAttribute then1;
  2877.     EiffelScan_tScanAttribute xor1;
  2878.     EiffelScan_tScanAttribute times1;
  2879.     EiffelScan_tScanAttribute smaller1;
  2880.     EiffelScan_tScanAttribute greater1;
  2881.     EiffelScan_tScanAttribute sm_eq1;
  2882.     EiffelScan_tScanAttribute gr_eq1;
  2883.     EiffelScan_tScanAttribute idiv1;
  2884.     EiffelScan_tScanAttribute imod1;
  2885.     EiffelScan_tScanAttribute power1;
  2886.   for (;;) {
  2887.     switch (xxToken) {
  2888.     case 103 /* imod */ :; 
  2889.       imod1 =       EiffelScan_Attribute;
  2890.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2891. /* line 322 "eiffel_mey.ell" */
  2892.  Binary0->Tree = mOper(imod1.Position, IMOD);                         
  2893.       goto xx12;
  2894.     case 102 /* idiv */ :; 
  2895.       idiv1 =       EiffelScan_Attribute;
  2896.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2897. /* line 323 "eiffel_mey.ell" */
  2898.  Binary0->Tree = mOper(idiv1.Position, IDIV);                         
  2899.       goto xx12;
  2900.     case 104 /* power */ :; 
  2901.       power1 =       EiffelScan_Attribute;
  2902.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2903. /* line 324 "eiffel_mey.ell" */
  2904.  Binary0->Tree = mOper(power1.Position, POWER);                     
  2905.       goto xx12;
  2906.     case 98 /* smaller */ :; 
  2907.       smaller1 =       EiffelScan_Attribute;
  2908.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2909. /* line 325 "eiffel_mey.ell" */
  2910.  Binary0->Tree = mOper(smaller1.Position, SMALLER);                     
  2911.       goto xx12;
  2912.     case 99 /* greater */ :; 
  2913.       greater1 =       EiffelScan_Attribute;
  2914.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2915. /* line 326 "eiffel_mey.ell" */
  2916.  Binary0->Tree = mOper(greater1.Position, GREATER);                     
  2917.       goto xx12;
  2918.     case 100 /* sm_eq */ :; 
  2919.       sm_eq1 =       EiffelScan_Attribute;
  2920.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2921. /* line 327 "eiffel_mey.ell" */
  2922.  Binary0->Tree = mOper(sm_eq1.Position, SM_EQ);                     
  2923.       goto xx12;
  2924.     case 101 /* gr_eq */ :; 
  2925.       gr_eq1 =       EiffelScan_Attribute;
  2926.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2927. /* line 328 "eiffel_mey.ell" */
  2928.  Binary0->Tree = mOper(gr_eq1.Position, GR_EQ);                     
  2929.       goto xx12;
  2930.     case 29 /* plus */ :; 
  2931.       plus1 =       EiffelScan_Attribute;
  2932.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2933. /* line 329 "eiffel_mey.ell" */
  2934.  Binary0->Tree = mOper(plus1.Position, PLUS);                         
  2935.       goto xx12;
  2936.     case 30 /* minus */ :; 
  2937.       minus1 =       EiffelScan_Attribute;
  2938.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2939. /* line 330 "eiffel_mey.ell" */
  2940.  Binary0->Tree = mOper(minus1.Position, MINUS);                     
  2941.       goto xx12;
  2942.     case 97 /* times */ :; 
  2943.       times1 =       EiffelScan_Attribute;
  2944.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2945. /* line 331 "eiffel_mey.ell" */
  2946.  Binary0->Tree = mOper(times1.Position, TIMES);                     
  2947.       goto xx12;
  2948.     case 33 /* div */ :; 
  2949.       div1 =       EiffelScan_Attribute;
  2950.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2951. /* line 332 "eiffel_mey.ell" */
  2952.  Binary0->Tree = mOper(div1.Position, DIV);                         
  2953.       goto xx12;
  2954.     case 36 /* and */ :; 
  2955.       and1 =       EiffelScan_Attribute;
  2956.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2957. /* line 333 "eiffel_mey.ell" */
  2958.  Binary0->Tree = mOper(and1.Position, AND);                         
  2959.       for (;;) {
  2960.         if ((xxToken == 89 /* then */)) {
  2961.           then1 =           EiffelScan_Attribute;
  2962.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2963. /* line 334 "eiffel_mey.ell" */
  2964.  Binary0->Tree->Oper.op = AND_THEN;                             
  2965.           break;
  2966.         } else if ((xxVerticalSet [xxToken + 216] & 1 << 2 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' ':' '(' '<<' plus minus 'as' 'creation' Current 'end' 'export' false 'feature' 'frozen' infix 'invariant' 'is' 'old' prefix 'redefine' Result 'select' 'strip' true 'undefine' not Id */) || xxIsRepairMode) break;
  2967.         xxExpected (56, 56, xxGlobalRecoverySet); /*  then /  then */
  2968.       }
  2969.       goto xx12;
  2970.     case 76 /* or */ :; 
  2971.       or1 =       EiffelScan_Attribute;
  2972.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2973. /* line 335 "eiffel_mey.ell" */
  2974.  Binary0->Tree = mOper(or1.Position, OR);                         
  2975.       for (;;) {
  2976.         if ((xxToken == 49 /* else */)) {
  2977.           else1 =           EiffelScan_Attribute;
  2978.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2979. /* line 336 "eiffel_mey.ell" */
  2980.  Binary0->Tree->Oper.op = OR_ELSE;                             
  2981.           break;
  2982.         } else if ((xxVerticalSet [xxToken + 216] & 1 << 2 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' ':' '(' '<<' plus minus 'as' 'creation' Current 'end' 'export' false 'feature' 'frozen' infix 'invariant' 'is' 'old' prefix 'redefine' Result 'select' 'strip' true 'undefine' not Id */) || xxIsRepairMode) break;
  2983.         xxExpected (58, 58, xxGlobalRecoverySet); /*  else /  else */
  2984.       }
  2985.       goto xx12;
  2986.     case 96 /* xor */ :; 
  2987.       xor1 =       EiffelScan_Attribute;
  2988.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2989. /* line 337 "eiffel_mey.ell" */
  2990.  Binary0->Tree = mOper(xor1.Position, XOR);                         
  2991.       goto xx12;
  2992.     case 61 /* implies */ :; 
  2993.       implies1 =       EiffelScan_Attribute;
  2994.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  2995. /* line 338 "eiffel_mey.ell" */
  2996.  Binary0->Tree = mOper(implies1.Position, IMPLIES);                     
  2997.       goto xx12;
  2998.     case 31:;
  2999.     case 32:;
  3000.     case 34:;
  3001.     case 35:;
  3002.     case 37:;
  3003.     case 38:;
  3004.     case 39:;
  3005.     case 40:;
  3006.     case 41:;
  3007.     case 42:;
  3008.     case 43:;
  3009.     case 44:;
  3010.     case 45:;
  3011.     case 46:;
  3012.     case 47:;
  3013.     case 48:;
  3014.     case 49:;
  3015.     case 50:;
  3016.     case 51:;
  3017.     case 52:;
  3018.     case 53:;
  3019.     case 54:;
  3020.     case 55:;
  3021.     case 56:;
  3022.     case 57:;
  3023.     case 58:;
  3024.     case 59:;
  3025.     case 60:;
  3026.     case 62:;
  3027.     case 63:;
  3028.     case 64:;
  3029.     case 65:;
  3030.     case 66:;
  3031.     case 67:;
  3032.     case 68:;
  3033.     case 69:;
  3034.     case 70:;
  3035.     case 71:;
  3036.     case 72:;
  3037.     case 73:;
  3038.     case 74:;
  3039.     case 75:;
  3040.     case 77:;
  3041.     case 78:;
  3042.     case 79:;
  3043.     case 80:;
  3044.     case 81:;
  3045.     case 82:;
  3046.     case 83:;
  3047.     case 84:;
  3048.     case 85:;
  3049.     case 86:;
  3050.     case 87:;
  3051.     case 88:;
  3052.     case 89:;
  3053.     case 90:;
  3054.     case 91:;
  3055.     case 92:;
  3056.     case 93:;
  3057.     case 94:;
  3058.     case 95:;
  3059.     default:
  3060.       if (xxIsRepairMode) {
  3061.         if (xxToken != 103 /* imod */)
  3062.           xxRecoveryTerminal (103, 46, xxGlobalRecoverySet, & imod1); /*  imod */
  3063.         else {
  3064.           imod1 =         EiffelScan_Attribute;
  3065.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3066.         }
  3067. /* line 322 "eiffel_mey.ell" */
  3068.  Binary0->Tree = mOper(imod1.Position, IMOD);                         
  3069.         goto xx12;
  3070.       }
  3071.       xxExpected (61, 61, xxGlobalRecoverySet); /*  plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  3072.     }
  3073.   }
  3074.   xx12:;
  3075. }
  3076.  
  3077. static void yyInheritance
  3078. # if defined __STDC__ | defined __cplusplus
  3079. (ParserMEY_tParsAttribute * Inheritance0, xxtUnionPtr xxGlobalRecoverySet)
  3080. # else
  3081. (Inheritance0, xxGlobalRecoverySet)
  3082. ParserMEY_tParsAttribute    * Inheritance0;
  3083. xxtUnionPtr    xxGlobalRecoverySet;
  3084. # endif
  3085. {
  3086.   ParserMEY_tParsAttribute Parent_list1;
  3087.   xxtUnion xxUnion;
  3088.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3089.   if (xxToken != 64 /* 'inherit' */)
  3090.     xxRecoveryLiteral (64, 62, xxGlobalRecoverySet); /*  expanded 'inherit' Id */
  3091.   else {
  3092.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3093.   }
  3094.   xxUnion.xxLocalRecoverySet = 0; yyParent_list (& Parent_list1, & xxUnion); /*  */
  3095. /* line 343 "eiffel_mey.ell" */
  3096.  Inheritance0->Tree = ReverseTree(Parent_list1.Tree);                    
  3097. }
  3098.  
  3099. static void yyParent_list
  3100. # if defined __STDC__ | defined __cplusplus
  3101. (ParserMEY_tParsAttribute * Parent_list0, xxtUnionPtr xxGlobalRecoverySet)
  3102. # else
  3103. (Parent_list0, xxGlobalRecoverySet)
  3104. ParserMEY_tParsAttribute    * Parent_list0;
  3105. xxtUnionPtr    xxGlobalRecoverySet;
  3106. # endif
  3107. {
  3108.   ParserMEY_tParsAttribute Parent1;
  3109.   xxtUnion xxUnion;
  3110.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3111. /* line 346 "eiffel_mey.ell" */
  3112.  Parent_list0->Tree = mParent_list0();                            
  3113.   for (;;) {
  3114.     if ((xxVerticalSet [xxToken + 216] & 1 << 3 /*  expanded Id */)) {
  3115.       for (;;) {
  3116.         xxUnion.xxLocalRecoverySet = 13; yyParent (& Parent1, & xxUnion); /*  ';' */
  3117. /* line 347 "eiffel_mey.ell" */
  3118.  Parent_list0->Tree = mParent_list1(Parent1.Tree, Parent_list0->Tree);            
  3119.         if (! ((xxToken == 7 /* ';' */))) {
  3120.           if ((xxVerticalSet [xxToken] & 1 << 4 /*  'creation' 'end' 'feature' 'invariant' */)) break;
  3121.           xxExpected (13, 64, xxGlobalRecoverySet); /*  ';' /  ';' expanded Id */
  3122.           if (! ((xxToken == 7 /* ';' */) || (xxVerticalSet [xxToken + 216] & 1 << 3 /*  expanded Id */))) break;
  3123.         }
  3124.         if (xxToken != 7 /* ';' */)
  3125.           xxRecoveryLiteral (7, 64, xxGlobalRecoverySet); /*  ';' expanded Id */
  3126.         else {
  3127.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3128.         }
  3129.       }
  3130.       break;
  3131.     } else if ((xxVerticalSet [xxToken] & 1 << 4 /*  'creation' 'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  3132.     xxExpected (63, 63, xxGlobalRecoverySet); /*  expanded Id /  expanded Id */
  3133.   }
  3134. }
  3135.  
  3136. static void yyParent
  3137. # if defined __STDC__ | defined __cplusplus
  3138. (ParserMEY_tParsAttribute * Parent0, xxtUnionPtr xxGlobalRecoverySet)
  3139. # else
  3140. (Parent0, xxGlobalRecoverySet)
  3141. ParserMEY_tParsAttribute    * Parent0;
  3142. xxtUnionPtr    xxGlobalRecoverySet;
  3143. # endif
  3144. {
  3145.   ParserMEY_tParsAttribute Class_type1;
  3146.   ParserMEY_tParsAttribute Feature_adaptation1;
  3147.   xxtUnion xxUnion;
  3148.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3149.   xxUnion.xxLocalRecoverySet = 65; yyClass_type (& Class_type1, & xxUnion); /*  'end' 'export' 'redefine' 'rename' 'select' 'undefine' */
  3150. /* line 352 "eiffel_mey.ell" */
  3151.  Parent0->Tree = mParent(Class_type1.Tree, mFeature_adaptation0());            
  3152.   for (;;) {
  3153.     if ((xxVerticalSet [xxToken + 216] & 1 << 4 /*  'end' 'export' 'redefine' 'rename' 'select' 'undefine' */)) {
  3154.       xxUnion.xxLocalRecoverySet = 0; yyFeature_adaptation (& Feature_adaptation1, & xxUnion); /*  */
  3155. /* line 353 "eiffel_mey.ell" */
  3156.  Parent0->Tree->Parent.Feature_adaptation = Feature_adaptation1.Tree;            
  3157.       break;
  3158.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 5 /*  ';' 'creation' 'end' 'feature' 'invariant' */) || xxIsRepairMode) break;
  3159.     xxExpected (65, 65, xxGlobalRecoverySet); /*  'end' 'export' 'redefine' 'rename' 'select' 'undefine' /  'end' 'export' 'redefine' 'rename' 'select' 'undefine' */
  3160.   }
  3161. }
  3162.  
  3163. static void yyFeature_adaptation
  3164. # if defined __STDC__ | defined __cplusplus
  3165. (ParserMEY_tParsAttribute * Feature_adaptation0, xxtUnionPtr xxGlobalRecoverySet)
  3166. # else
  3167. (Feature_adaptation0, xxGlobalRecoverySet)
  3168. ParserMEY_tParsAttribute    * Feature_adaptation0;
  3169. xxtUnionPtr    xxGlobalRecoverySet;
  3170. # endif
  3171. {
  3172.   ParserMEY_tParsAttribute Rename1;
  3173.   ParserMEY_tParsAttribute New_exports1;
  3174.   ParserMEY_tParsAttribute Undefine1;
  3175.   ParserMEY_tParsAttribute Redefine1;
  3176.   ParserMEY_tParsAttribute Select1;
  3177.   xxtUnion xxUnion;
  3178.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3179. /* line 356 "eiffel_mey.ell" */
  3180.  Feature_adaptation0->Tree = mFeature_adaptation1(mRename_list0(), mNew_export_list0(),
  3181.                             mFeature_list0(), mFeature_list0(), mFeature_list0()); 
  3182.   for (;;) {
  3183.     if ((xxToken == 80 /* 'rename' */)) {
  3184.       xxUnion.xxLocalRecoverySet = 66; yyRename (& Rename1, & xxUnion); /*  'end' 'export' 'redefine' 'select' 'undefine' */
  3185. /* line 358 "eiffel_mey.ell" */
  3186. Feature_adaptation0->Tree->Feature_adaptation1.Rename = Rename1.Tree;            
  3187.       break;
  3188.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 6 /*  'end' 'export' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3189.     xxExpected (65, 65, xxGlobalRecoverySet); /*  'end' 'export' 'redefine' 'rename' 'select' 'undefine' /  'end' 'export' 'redefine' 'rename' 'select' 'undefine' */
  3190.   }
  3191.   for (;;) {
  3192.     if ((xxToken == 54 /* 'export' */)) {
  3193.       xxUnion.xxLocalRecoverySet = 67; yyNew_exports (& New_exports1, & xxUnion); /*  'end' 'redefine' 'select' 'undefine' */
  3194. /* line 359 "eiffel_mey.ell" */
  3195. Feature_adaptation0->Tree->Feature_adaptation1.New_export = New_exports1.Tree;        
  3196.       break;
  3197.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 7 /*  'end' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3198.     xxExpected (66, 66, xxGlobalRecoverySet); /*  'end' 'export' 'redefine' 'select' 'undefine' /  'end' 'export' 'redefine' 'select' 'undefine' */
  3199.   }
  3200.   for (;;) {
  3201.     if ((xxToken == 91 /* 'undefine' */)) {
  3202.       xxUnion.xxLocalRecoverySet = 68; yyUndefine (& Undefine1, & xxUnion); /*  'end' 'redefine' 'select' */
  3203. /* line 360 "eiffel_mey.ell" */
  3204. Feature_adaptation0->Tree->Feature_adaptation1.Undefine = Undefine1.Tree;        
  3205.       break;
  3206.     } else if ((xxVerticalSet [xxToken + 324] & 1 << 0 /*  'end' 'redefine' 'select' */) || xxIsRepairMode) break;
  3207.     xxExpected (67, 67, xxGlobalRecoverySet); /*  'end' 'redefine' 'select' 'undefine' /  'end' 'redefine' 'select' 'undefine' */
  3208.   }
  3209.   for (;;) {
  3210.     if ((xxToken == 79 /* 'redefine' */)) {
  3211.       xxUnion.xxLocalRecoverySet = 69; yyRedefine (& Redefine1, & xxUnion); /*  'end' 'select' */
  3212. /* line 361 "eiffel_mey.ell" */
  3213. Feature_adaptation0->Tree->Feature_adaptation1.Redefine = Redefine1.Tree;        
  3214.       break;
  3215.     } else if ((xxVerticalSet [xxToken + 324] & 1 << 1 /*  'end' 'select' */) || xxIsRepairMode) break;
  3216.     xxExpected (68, 68, xxGlobalRecoverySet); /*  'end' 'redefine' 'select' /  'end' 'redefine' 'select' */
  3217.   }
  3218.   for (;;) {
  3219.     if ((xxToken == 85 /* 'select' */)) {
  3220.       xxUnion.xxLocalRecoverySet = 10; yySelect (& Select1, & xxUnion); /*  'end' */
  3221. /* line 362 "eiffel_mey.ell" */
  3222. Feature_adaptation0->Tree->Feature_adaptation1.Select = Select1.Tree;            
  3223.       break;
  3224.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  3225.     xxExpected (69, 69, xxGlobalRecoverySet); /*  'end' 'select' /  'end' 'select' */
  3226.   }
  3227.   if (xxToken != 51 /* 'end' */)
  3228.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  3229.   else {
  3230.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3231.   }
  3232. }
  3233.  
  3234. static void yyRename
  3235. # if defined __STDC__ | defined __cplusplus
  3236. (ParserMEY_tParsAttribute * Rename0, xxtUnionPtr xxGlobalRecoverySet)
  3237. # else
  3238. (Rename0, xxGlobalRecoverySet)
  3239. ParserMEY_tParsAttribute    * Rename0;
  3240. xxtUnionPtr    xxGlobalRecoverySet;
  3241. # endif
  3242. {
  3243.   ParserMEY_tParsAttribute Rename_list1;
  3244.   xxtUnion xxUnion;
  3245.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3246.   if (xxToken != 80 /* 'rename' */)
  3247.     xxRecoveryLiteral (80, 70, xxGlobalRecoverySet); /*  infix prefix 'rename' Id */
  3248.   else {
  3249.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3250.   }
  3251.   xxUnion.xxLocalRecoverySet = 0; yyRename_list (& Rename_list1, & xxUnion); /*  */
  3252. /* line 368 "eiffel_mey.ell" */
  3253.  Rename0->Tree = ReverseTree(Rename_list1.Tree);                    
  3254. }
  3255.  
  3256. static void yyRename_list
  3257. # if defined __STDC__ | defined __cplusplus
  3258. (ParserMEY_tParsAttribute * Rename_list0, xxtUnionPtr xxGlobalRecoverySet)
  3259. # else
  3260. (Rename_list0, xxGlobalRecoverySet)
  3261. ParserMEY_tParsAttribute    * Rename_list0;
  3262. xxtUnionPtr    xxGlobalRecoverySet;
  3263. # endif
  3264. {
  3265.   ParserMEY_tParsAttribute Rename_pair1;
  3266.   xxtUnion xxUnion;
  3267.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3268. /* line 371 "eiffel_mey.ell" */
  3269.  Rename_list0->Tree = mRename_list0();                            
  3270.   for (;;) {
  3271.     if ((xxVerticalSet [xxToken + 324] & 1 << 2 /*  infix prefix Id */)) {
  3272.       for (;;) {
  3273.         xxUnion.xxLocalRecoverySet = 16; yyRename_pair (& Rename_pair1, & xxUnion); /*  ',' */
  3274. /* line 372 "eiffel_mey.ell" */
  3275.  Rename_list0->Tree = mRename_list1(Rename_pair1.Tree, Rename_list0->Tree);        
  3276.         if (! ((xxToken == 8 /* ',' */))) {
  3277.           if ((xxVerticalSet [xxToken + 216] & 1 << 6 /*  'end' 'export' 'redefine' 'select' 'undefine' */)) break;
  3278.           xxExpected (16, 71, xxGlobalRecoverySet); /*  ',' /  ',' infix prefix Id */
  3279.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 2 /*  infix prefix Id */))) break;
  3280.         }
  3281.         if (xxToken != 8 /* ',' */)
  3282.           xxRecoveryLiteral (8, 71, xxGlobalRecoverySet); /*  ',' infix prefix Id */
  3283.         else {
  3284.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3285.         }
  3286.       }
  3287.       break;
  3288.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 6 /*  'end' 'export' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3289.     xxExpected (36, 36, xxGlobalRecoverySet); /*  infix prefix Id /  infix prefix Id */
  3290.   }
  3291. }
  3292.  
  3293. static void yyRename_pair
  3294. # if defined __STDC__ | defined __cplusplus
  3295. (ParserMEY_tParsAttribute * Rename_pair0, xxtUnionPtr xxGlobalRecoverySet)
  3296. # else
  3297. (Rename_pair0, xxGlobalRecoverySet)
  3298. ParserMEY_tParsAttribute    * Rename_pair0;
  3299. xxtUnionPtr    xxGlobalRecoverySet;
  3300. # endif
  3301. {
  3302.   ParserMEY_tParsAttribute Feature_name1, Feature_name2;
  3303.   xxtUnion xxUnion;
  3304.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3305.   xxUnion.xxLocalRecoverySet = 72; yyFeature_name (& Feature_name1, & xxUnion); /*  'as' infix prefix Id */
  3306.   if (xxToken != 37 /* 'as' */)
  3307.     xxRecoveryLiteral (37, 72, xxGlobalRecoverySet); /*  'as' infix prefix Id */
  3308.   else {
  3309.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3310.   }
  3311.   xxUnion.xxLocalRecoverySet = 0; yyFeature_name (& Feature_name2, & xxUnion); /*  */
  3312. /* line 377 "eiffel_mey.ell" */
  3313.  Rename_pair0->Tree = mRename_pair(Feature_name1.Tree, Feature_name2.Tree);     
  3314. }
  3315.  
  3316. static void yyClients
  3317. # if defined __STDC__ | defined __cplusplus
  3318. (ParserMEY_tParsAttribute * Clients0, xxtUnionPtr xxGlobalRecoverySet)
  3319. # else
  3320. (Clients0, xxGlobalRecoverySet)
  3321. ParserMEY_tParsAttribute    * Clients0;
  3322. xxtUnionPtr    xxGlobalRecoverySet;
  3323. # endif
  3324. {
  3325.   ParserMEY_tParsAttribute Class_list1;
  3326.   xxtUnion xxUnion;
  3327.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3328.   if (xxToken != 21 /* '{' */)
  3329.     xxRecoveryLiteral (21, 73, xxGlobalRecoverySet); /*  '{' '}' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  3330.   else {
  3331.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3332.   }
  3333.   xxUnion.xxLocalRecoverySet = 74; yyClass_list (& Class_list1, & xxUnion); /*  '}' */
  3334. /* line 381 "eiffel_mey.ell" */
  3335.  comment_ref = no_comment; 
  3336.   if (xxToken != 22 /* '}' */)
  3337.     xxRecoveryLiteral (22, 74, xxGlobalRecoverySet); /*  '}' */
  3338.   else {
  3339.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3340.   }
  3341. /* line 381 "eiffel_mey.ell" */
  3342.  Clients0->Tree = mClients1(Class_list1.Tree);     
  3343. }
  3344.  
  3345. static void yyClass_list
  3346. # if defined __STDC__ | defined __cplusplus
  3347. (ParserMEY_tParsAttribute * Class_list0, xxtUnionPtr xxGlobalRecoverySet)
  3348. # else
  3349. (Class_list0, xxGlobalRecoverySet)
  3350. ParserMEY_tParsAttribute    * Class_list0;
  3351. xxtUnionPtr    xxGlobalRecoverySet;
  3352. # endif
  3353. {
  3354.   ParserMEY_tParsAttribute Formal_generic_name1;
  3355.   xxtUnion xxUnion;
  3356.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3357. /* line 384 "eiffel_mey.ell" */
  3358.  Class_list0->Tree = mnolist();                            
  3359.   for (;;) {
  3360.     if ((xxVerticalSet [xxToken + 324] & 1 << 3 /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */)) {
  3361.       for (;;) {
  3362.         xxUnion.xxLocalRecoverySet = 16; yyFormal_generic_name (& Formal_generic_name1, & xxUnion); /*  ',' */
  3363. /* line 385 "eiffel_mey.ell" */
  3364.  Class_list0->Tree = mlist(Formal_generic_name1.Tree, Class_list0->Tree);    
  3365.         if (! ((xxToken == 8 /* ',' */))) {
  3366.           if ((xxToken == 22 /* '}' */)) break;
  3367.           xxExpected (16, 76, xxGlobalRecoverySet); /*  ',' /  ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  3368.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 3 /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */))) break;
  3369.         }
  3370.         if (xxToken != 8 /* ',' */)
  3371.           xxRecoveryLiteral (8, 76, xxGlobalRecoverySet); /*  ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  3372.         else {
  3373.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3374.         }
  3375.       }
  3376.       break;
  3377.     } else if ((xxToken == 22 /* '}' */) || xxIsRepairMode) break;
  3378.     xxExpected (75, 75, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id /  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  3379.   }
  3380. }
  3381.  
  3382. static void yyNew_exports
  3383. # if defined __STDC__ | defined __cplusplus
  3384. (ParserMEY_tParsAttribute * New_exports0, xxtUnionPtr xxGlobalRecoverySet)
  3385. # else
  3386. (New_exports0, xxGlobalRecoverySet)
  3387. ParserMEY_tParsAttribute    * New_exports0;
  3388. xxtUnionPtr    xxGlobalRecoverySet;
  3389. # endif
  3390. {
  3391.   ParserMEY_tParsAttribute New_export_list1;
  3392.   xxtUnion xxUnion;
  3393.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3394.   if (xxToken != 54 /* 'export' */)
  3395.     xxRecoveryLiteral (54, 77, xxGlobalRecoverySet); /*  '{' 'export' */
  3396.   else {
  3397.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3398.   }
  3399.   xxUnion.xxLocalRecoverySet = 0; yyNew_export_list (& New_export_list1, & xxUnion); /*  */
  3400. /* line 392 "eiffel_mey.ell" */
  3401.  New_exports0->Tree = ReverseTree(New_export_list1.Tree);                
  3402. }
  3403.  
  3404. static void yyNew_export_list
  3405. # if defined __STDC__ | defined __cplusplus
  3406. (ParserMEY_tParsAttribute * New_export_list0, xxtUnionPtr xxGlobalRecoverySet)
  3407. # else
  3408. (New_export_list0, xxGlobalRecoverySet)
  3409. ParserMEY_tParsAttribute    * New_export_list0;
  3410. xxtUnionPtr    xxGlobalRecoverySet;
  3411. # endif
  3412. {
  3413.   ParserMEY_tParsAttribute New_export_item1;
  3414.   xxtUnion xxUnion;
  3415.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3416. /* line 395 "eiffel_mey.ell" */
  3417.  New_export_list0->Tree = mNew_export_list0();                        
  3418.   for (;;) {
  3419.     if ((xxToken == 21 /* '{' */)) {
  3420.       for (;;) {
  3421.         xxUnion.xxLocalRecoverySet = 13; yyNew_export_item (& New_export_item1, & xxUnion); /*  ';' */
  3422. /* line 396 "eiffel_mey.ell" */
  3423.  New_export_list0->Tree = mNew_export_list1(New_export_item1.Tree, New_export_list0->Tree); 
  3424.         if (! ((xxToken == 7 /* ';' */))) {
  3425.           if ((xxVerticalSet [xxToken + 216] & 1 << 7 /*  'end' 'redefine' 'select' 'undefine' */)) break;
  3426.           xxExpected (13, 79, xxGlobalRecoverySet); /*  ';' /  ';' '{' */
  3427.           if (! ((xxToken == 7 /* ';' */) || (xxToken == 21 /* '{' */))) break;
  3428.         }
  3429.         if (xxToken != 7 /* ';' */)
  3430.           xxRecoveryLiteral (7, 79, xxGlobalRecoverySet); /*  ';' '{' */
  3431.         else {
  3432.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3433.         }
  3434.       }
  3435.       break;
  3436.     } else if ((xxVerticalSet [xxToken + 216] & 1 << 7 /*  'end' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3437.     xxExpected (78, 78, xxGlobalRecoverySet); /*  '{' /  '{' */
  3438.   }
  3439. }
  3440.  
  3441. static void yyNew_export_item
  3442. # if defined __STDC__ | defined __cplusplus
  3443. (ParserMEY_tParsAttribute * New_export_item0, xxtUnionPtr xxGlobalRecoverySet)
  3444. # else
  3445. (New_export_item0, xxGlobalRecoverySet)
  3446. ParserMEY_tParsAttribute    * New_export_item0;
  3447. xxtUnionPtr    xxGlobalRecoverySet;
  3448. # endif
  3449. {
  3450.   ParserMEY_tParsAttribute Clients1;
  3451.   ParserMEY_tParsAttribute Feature_set1;
  3452.   xxtUnion xxUnion;
  3453.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3454.   xxUnion.xxLocalRecoverySet = 80; yyClients (& Clients1, & xxUnion); /*  'all' infix prefix Id */
  3455.   xxUnion.xxLocalRecoverySet = 0; yyFeature_set (& Feature_set1, & xxUnion); /*  */
  3456. /* line 401 "eiffel_mey.ell" */
  3457.  New_export_item0->Tree = mNew_export_item(Clients1.Tree, Feature_set1.Tree);        
  3458. }
  3459.  
  3460. static void yyFeature_set
  3461. # if defined __STDC__ | defined __cplusplus
  3462. (ParserMEY_tParsAttribute * Feature_set0, xxtUnionPtr xxGlobalRecoverySet)
  3463. # else
  3464. (Feature_set0, xxGlobalRecoverySet)
  3465. ParserMEY_tParsAttribute    * Feature_set0;
  3466. xxtUnionPtr    xxGlobalRecoverySet;
  3467. # endif
  3468. {
  3469.   ParserMEY_tParsAttribute Feature_list1;
  3470.   xxtUnion xxUnion;
  3471.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3472.   for (;;) {
  3473.     switch (xxToken) {
  3474.     case 7 /* ';' */ :; 
  3475.     case 51 /* 'end' */ :; 
  3476.     case 63 /* infix */ :; 
  3477.     case 77 /* prefix */ :; 
  3478.     case 79 /* 'redefine' */ :; 
  3479.     case 85 /* 'select' */ :; 
  3480.     case 91 /* 'undefine' */ :; 
  3481.     case 106 /* Id */ :; 
  3482.       xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  3483. /* line 405 "eiffel_mey.ell" */
  3484.  Feature_set0->Tree = ReverseTree(Feature_list1.Tree);                    
  3485.       goto xx13;
  3486.     case 35 /* 'all' */ :; 
  3487.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3488. /* line 406 "eiffel_mey.ell" */
  3489.  Feature_set0->Tree = mAll();                                
  3490.       goto xx13;
  3491.     case 8:;
  3492.     case 9:;
  3493.     case 10:;
  3494.     case 11:;
  3495.     case 12:;
  3496.     case 13:;
  3497.     case 14:;
  3498.     case 15:;
  3499.     case 16:;
  3500.     case 17:;
  3501.     case 18:;
  3502.     case 19:;
  3503.     case 20:;
  3504.     case 21:;
  3505.     case 22:;
  3506.     case 23:;
  3507.     case 24:;
  3508.     case 25:;
  3509.     case 26:;
  3510.     case 27:;
  3511.     case 28:;
  3512.     case 29:;
  3513.     case 30:;
  3514.     case 31:;
  3515.     case 32:;
  3516.     case 33:;
  3517.     case 34:;
  3518.     case 36:;
  3519.     case 37:;
  3520.     case 38:;
  3521.     case 39:;
  3522.     case 40:;
  3523.     case 41:;
  3524.     case 42:;
  3525.     case 43:;
  3526.     case 44:;
  3527.     case 45:;
  3528.     case 46:;
  3529.     case 47:;
  3530.     case 48:;
  3531.     case 49:;
  3532.     case 50:;
  3533.     case 52:;
  3534.     case 53:;
  3535.     case 54:;
  3536.     case 55:;
  3537.     case 56:;
  3538.     case 57:;
  3539.     case 58:;
  3540.     case 59:;
  3541.     case 60:;
  3542.     case 61:;
  3543.     case 62:;
  3544.     case 64:;
  3545.     case 65:;
  3546.     case 66:;
  3547.     case 67:;
  3548.     case 68:;
  3549.     case 69:;
  3550.     case 70:;
  3551.     case 71:;
  3552.     case 72:;
  3553.     case 73:;
  3554.     case 74:;
  3555.     case 75:;
  3556.     case 76:;
  3557.     case 78:;
  3558.     case 80:;
  3559.     case 81:;
  3560.     case 82:;
  3561.     case 83:;
  3562.     case 84:;
  3563.     case 86:;
  3564.     case 87:;
  3565.     case 88:;
  3566.     case 89:;
  3567.     case 90:;
  3568.     case 92:;
  3569.     case 93:;
  3570.     case 94:;
  3571.     case 95:;
  3572.     case 96:;
  3573.     case 97:;
  3574.     case 98:;
  3575.     case 99:;
  3576.     case 100:;
  3577.     case 101:;
  3578.     case 102:;
  3579.     case 103:;
  3580.     case 104:;
  3581.     case 105:;
  3582.     default:
  3583.       if (xxIsRepairMode) {
  3584.         xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  3585. /* line 405 "eiffel_mey.ell" */
  3586.  Feature_set0->Tree = ReverseTree(Feature_list1.Tree);                    
  3587.         goto xx13;
  3588.       }
  3589. xxUnexpected (80, xxGlobalRecoverySet); /*  'all' infix prefix Id */
  3590.     }
  3591.   }
  3592.   xx13:;
  3593. }
  3594.  
  3595. static void yyFeature_list
  3596. # if defined __STDC__ | defined __cplusplus
  3597. (ParserMEY_tParsAttribute * Feature_list0, xxtUnionPtr xxGlobalRecoverySet)
  3598. # else
  3599. (Feature_list0, xxGlobalRecoverySet)
  3600. ParserMEY_tParsAttribute    * Feature_list0;
  3601. xxtUnionPtr    xxGlobalRecoverySet;
  3602. # endif
  3603. {
  3604.   ParserMEY_tParsAttribute Feature_name1;
  3605.   xxtUnion xxUnion;
  3606.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3607. /* line 409 "eiffel_mey.ell" */
  3608.  Feature_list0->Tree = mFeature_list0();                        
  3609.   for (;;) {
  3610.     if ((xxVerticalSet [xxToken + 324] & 1 << 2 /*  infix prefix Id */)) {
  3611.       for (;;) {
  3612.         xxUnion.xxLocalRecoverySet = 16; yyFeature_name (& Feature_name1, & xxUnion); /*  ',' */
  3613. /* line 410 "eiffel_mey.ell" */
  3614.  Feature_list0->Tree = mFeature_list1(Feature_name1.Tree, Feature_list0->Tree);    
  3615.         if (! ((xxToken == 8 /* ',' */))) {
  3616.           if ((xxVerticalSet [xxToken + 324] & 1 << 4 /*  ';' 'creation' 'end' 'feature' 'invariant' 'redefine' 'select' 'undefine' */)) break;
  3617.           xxExpected (16, 71, xxGlobalRecoverySet); /*  ',' /  ',' infix prefix Id */
  3618.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 2 /*  infix prefix Id */))) break;
  3619.         }
  3620.         if (xxToken != 8 /* ',' */)
  3621.           xxRecoveryLiteral (8, 71, xxGlobalRecoverySet); /*  ',' infix prefix Id */
  3622.         else {
  3623.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3624.         }
  3625.       }
  3626.       break;
  3627.     } else if ((xxVerticalSet [xxToken + 324] & 1 << 4 /*  ';' 'creation' 'end' 'feature' 'invariant' 'redefine' 'select' 'undefine' */) || xxIsRepairMode) break;
  3628.     xxExpected (36, 36, xxGlobalRecoverySet); /*  infix prefix Id /  infix prefix Id */
  3629.   }
  3630. }
  3631.  
  3632. static void yyFormal_arguments
  3633. # if defined __STDC__ | defined __cplusplus
  3634. (ParserMEY_tParsAttribute * Formal_arguments0, xxtUnionPtr xxGlobalRecoverySet)
  3635. # else
  3636. (Formal_arguments0, xxGlobalRecoverySet)
  3637. ParserMEY_tParsAttribute    * Formal_arguments0;
  3638. xxtUnionPtr    xxGlobalRecoverySet;
  3639. # endif
  3640. {
  3641.   ParserMEY_tParsAttribute Entity_declaration_list1;
  3642.   xxtUnion xxUnion;
  3643.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3644.   if (xxToken != 17 /* '(' */)
  3645.     xxRecoveryLiteral (17, 82, xxGlobalRecoverySet); /*  '(' ')' Id */
  3646.   else {
  3647.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3648.   }
  3649.   xxUnion.xxLocalRecoverySet = 83; yyEntity_declaration_list (& Entity_declaration_list1, & xxUnion); /*  ')' */
  3650.   if (xxToken != 18 /* ')' */)
  3651.     xxRecoveryLiteral (18, 83, xxGlobalRecoverySet); /*  ')' */
  3652.   else {
  3653.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3654.   }
  3655. /* line 416 "eiffel_mey.ell" */
  3656.  Formal_arguments0->Tree = ReverseTree(Entity_declaration_list1.Tree);        
  3657. }
  3658.  
  3659. static void yyEntity_declaration_list
  3660. # if defined __STDC__ | defined __cplusplus
  3661. (ParserMEY_tParsAttribute * Entity_declaration_list0, xxtUnionPtr xxGlobalRecoverySet)
  3662. # else
  3663. (Entity_declaration_list0, xxGlobalRecoverySet)
  3664. ParserMEY_tParsAttribute    * Entity_declaration_list0;
  3665. xxtUnionPtr    xxGlobalRecoverySet;
  3666. # endif
  3667. {
  3668.   ParserMEY_tParsAttribute Entity_declaration_group1, Entity_declaration_group2;
  3669.   xxtUnion xxUnion;
  3670.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3671. /* line 419 "eiffel_mey.ell" */
  3672.  Entity_declaration_list0->Tree = mFormal_args0();                
  3673.   for (;;) {
  3674.     if ((xxToken == 106 /* Id */)) {
  3675.       xxUnion.xxLocalRecoverySet = 85; yyEntity_declaration_group (& Entity_declaration_group1, & xxUnion); /*  ';' Id */
  3676. /* line 420 "eiffel_mey.ell" */
  3677.  Entity_declaration_list0->Tree = mFormal_args1(Entity_declaration_group1.Tree,
  3678.                                      Entity_declaration_list0->Tree);    
  3679.       for (;;) {
  3680.         if ((xxVerticalSet [xxToken + 324] & 1 << 6 /*  ';' Id */)) {
  3681.           for (;;) {
  3682.             if ((xxToken == 7 /* ';' */)) {
  3683.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3684.               break;
  3685.             } else if ((xxToken == 106 /* Id */) || xxIsRepairMode) break;
  3686.             xxExpected (85, 85, xxGlobalRecoverySet); /*  ';' Id /  ';' Id */
  3687.           }
  3688.           xxUnion.xxLocalRecoverySet = 0; yyEntity_declaration_group (& Entity_declaration_group2, & xxUnion); /*  */
  3689. /* line 423 "eiffel_mey.ell" */
  3690.  Entity_declaration_list0->Tree = mFormal_args1(Entity_declaration_group2.Tree,
  3691.                                      Entity_declaration_list0->Tree);    
  3692.         } else if ((xxVerticalSet [xxToken + 324] & 1 << 5 /*  ')' deferred do 'external' once */) || xxIsRepairMode) break;
  3693.         else
  3694.           xxExpected (85, 85, xxGlobalRecoverySet); /*  ';' Id /  ';' Id */
  3695.       }
  3696.       break;
  3697.     } else if ((xxVerticalSet [xxToken + 324] & 1 << 5 /*  ')' deferred do 'external' once */) || xxIsRepairMode) break;
  3698.     xxExpected (84, 84, xxGlobalRecoverySet); /*  Id /  Id */
  3699.   }
  3700. }
  3701.  
  3702. static void yyEntity_declaration_group
  3703. # if defined __STDC__ | defined __cplusplus
  3704. (ParserMEY_tParsAttribute * Entity_declaration_group0, xxtUnionPtr xxGlobalRecoverySet)
  3705. # else
  3706. (Entity_declaration_group0, xxGlobalRecoverySet)
  3707. ParserMEY_tParsAttribute    * Entity_declaration_group0;
  3708. xxtUnionPtr    xxGlobalRecoverySet;
  3709. # endif
  3710. {
  3711.   ParserMEY_tParsAttribute Type_mark1;
  3712.   ParserMEY_tParsAttribute Identifier_list1;
  3713.   xxtUnion xxUnion;
  3714.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3715.   xxUnion.xxLocalRecoverySet = 86; yyIdentifier_list (& Identifier_list1, & xxUnion); /*  ':' */
  3716.   xxUnion.xxLocalRecoverySet = 0; yyType_mark (& Type_mark1, & xxUnion); /*  */
  3717. /* line 428 "eiffel_mey.ell" */
  3718.  Entity_declaration_group0->Tree = mEntity_decl_group(Identifier_list1.Tree, 
  3719.                                             Type_mark1.Tree);    
  3720. }
  3721.  
  3722. static void yyIdentifier_list
  3723. # if defined __STDC__ | defined __cplusplus
  3724. (ParserMEY_tParsAttribute * Identifier_list0, xxtUnionPtr xxGlobalRecoverySet)
  3725. # else
  3726. (Identifier_list0, xxGlobalRecoverySet)
  3727. ParserMEY_tParsAttribute    * Identifier_list0;
  3728. xxtUnionPtr    xxGlobalRecoverySet;
  3729. # endif
  3730. {
  3731.   ParserMEY_tParsAttribute Identifier1;
  3732.   xxtUnion xxUnion;
  3733.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3734. /* line 432 "eiffel_mey.ell" */
  3735.  Identifier_list0->Tree = mnolist();                            
  3736.   for (;;) {
  3737.     xxUnion.xxLocalRecoverySet = 16; yyIdentifier (& Identifier1, & xxUnion); /*  ',' */
  3738. /* line 433 "eiffel_mey.ell" */
  3739.  Identifier_list0->Tree = mlist(Identifier1.Tree, Identifier_list0->Tree);        
  3740.     if (! ((xxToken == 8 /* ',' */))) {
  3741.       if ((xxToken == 9 /* ':' */)) break;
  3742.       xxExpected (16, 87, xxGlobalRecoverySet); /*  ',' /  ',' Id */
  3743.       if (! ((xxToken == 8 /* ',' */) || (xxToken == 106 /* Id */))) break;
  3744.     }
  3745.     if (xxToken != 8 /* ',' */)
  3746.       xxRecoveryLiteral (8, 87, xxGlobalRecoverySet); /*  ',' Id */
  3747.     else {
  3748.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3749.     }
  3750.   }
  3751. /* line 434 "eiffel_mey.ell" */
  3752.  Identifier_list0->Tree = ReverseTree(Identifier_list0->Tree);                
  3753. }
  3754.  
  3755. static void yyType_mark
  3756. # if defined __STDC__ | defined __cplusplus
  3757. (ParserMEY_tParsAttribute * Type_mark0, xxtUnionPtr xxGlobalRecoverySet)
  3758. # else
  3759. (Type_mark0, xxGlobalRecoverySet)
  3760. ParserMEY_tParsAttribute    * Type_mark0;
  3761. xxtUnionPtr    xxGlobalRecoverySet;
  3762. # endif
  3763. {
  3764.   ParserMEY_tParsAttribute Type1;
  3765.   xxtUnion xxUnion;
  3766.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3767.   if (xxToken != 9 /* ':' */)
  3768.     xxRecoveryLiteral (9, 88, xxGlobalRecoverySet); /*  ':' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  3769.   else {
  3770.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3771.   }
  3772.   xxUnion.xxLocalRecoverySet = 0; yyType (& Type1, & xxUnion); /*  */
  3773. /* line 438 "eiffel_mey.ell" */
  3774.  Type_mark0->Tree = Type1.Tree;                            
  3775. }
  3776.  
  3777. static void yyRoutine
  3778. # if defined __STDC__ | defined __cplusplus
  3779. (ParserMEY_tParsAttribute * Routine0, xxtUnionPtr xxGlobalRecoverySet)
  3780. # else
  3781. (Routine0, xxGlobalRecoverySet)
  3782. ParserMEY_tParsAttribute    * Routine0;
  3783. xxtUnionPtr    xxGlobalRecoverySet;
  3784. # endif
  3785. {
  3786.   ParserMEY_tParsAttribute Obsolete1;
  3787.   ParserMEY_tParsAttribute Precondition1;
  3788.   ParserMEY_tParsAttribute Local_declarations1;
  3789.   ParserMEY_tParsAttribute Routine_body1;
  3790.   ParserMEY_tParsAttribute Postcondition1;
  3791.   ParserMEY_tParsAttribute Rescue1;
  3792.   xxtUnion xxUnion;
  3793.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3794. /* line 442 "eiffel_mey.ell" */
  3795.  Routine0->Tree = mRoutine(mString0(), 
  3796.                             no_comment, 
  3797.                             mCondition0(), 
  3798.                             mFormal_args0(), 
  3799.                             mRoutine_body0(), 
  3800.                                 mCondition0(), 
  3801.                             mCompound0(), 
  3802.                             no_comment);                        
  3803.   for (;;) {
  3804.     if ((xxToken == 73 /* 'obsolete' */)) {
  3805.       xxUnion.xxLocalRecoverySet = 91; yyObsolete (& Obsolete1, & xxUnion); /*  deferred do 'end' 'ensure' 'external' 'local' once 'require' 'rescue' */
  3806. /* line 450 "eiffel_mey.ell" */
  3807.  Routine0->Tree->Routine.Obsolete = Obsolete1.Tree;                    
  3808.       break;
  3809.     } else if ((xxVerticalSet [xxToken + 324] & 1 << 7 /*  deferred do 'external' 'local' once 'require' */) || xxIsRepairMode) break;
  3810.     xxExpected (89, 90, xxGlobalRecoverySet); /*  deferred do 'external' 'local' 'obsolete' once 'require' /  deferred do 'end' 'ensure' 'external' 'local' 'obsolete' once 'require' 'rescue' */
  3811.   }
  3812. /* line 451 "eiffel_mey.ell" */
  3813.  Routine0->Tree->Routine.comment = comment_ref;                    
  3814.   for (;;) {
  3815.     if ((xxToken == 81 /* 'require' */)) {
  3816.       xxUnion.xxLocalRecoverySet = 93; yyPrecondition (& Precondition1, & xxUnion); /*  deferred do 'end' 'ensure' 'external' 'local' once 'rescue' */
  3817. /* line 452 "eiffel_mey.ell" */
  3818.  Routine0->Tree->Routine.Precondition = Precondition1.Tree;                
  3819.       break;
  3820.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 0 /*  deferred do 'external' 'local' once */) || xxIsRepairMode) break;
  3821.     xxExpected (92, 91, xxGlobalRecoverySet); /*  deferred do 'external' 'local' once 'require' /  deferred do 'end' 'ensure' 'external' 'local' once 'require' 'rescue' */
  3822.   }
  3823.   for (;;) {
  3824.     if ((xxToken == 70 /* 'local' */)) {
  3825.       xxUnion.xxLocalRecoverySet = 95; yyLocal_declarations (& Local_declarations1, & xxUnion); /*  deferred do 'end' 'ensure' 'external' once 'rescue' */
  3826. /* line 453 "eiffel_mey.ell" */
  3827.  Routine0->Tree->Routine.Local_decls  = Local_declarations1.Tree;            
  3828.       break;
  3829.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 1 /*  deferred do 'external' once */) || xxIsRepairMode) break;
  3830.     xxExpected (94, 93, xxGlobalRecoverySet); /*  deferred do 'external' 'local' once /  deferred do 'end' 'ensure' 'external' 'local' once 'rescue' */
  3831.   }
  3832.   xxUnion.xxLocalRecoverySet = 96; yyRoutine_body (& Routine_body1, & xxUnion); /*  'end' 'ensure' 'rescue' */
  3833. /* line 454 "eiffel_mey.ell" */
  3834.  Routine0->Tree->Routine.Routine_body = Routine_body1.Tree;                
  3835.   for (;;) {
  3836.     if ((xxToken == 52 /* 'ensure' */)) {
  3837.       xxUnion.xxLocalRecoverySet = 97; yyPostcondition (& Postcondition1, & xxUnion); /*  'end' 'rescue' */
  3838. /* line 455 "eiffel_mey.ell" */
  3839.  Routine0->Tree->Routine.Postcondition = Postcondition1.Tree;                
  3840.       break;
  3841.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 2 /*  'end' 'rescue' */) || xxIsRepairMode) break;
  3842.     xxExpected (96, 96, xxGlobalRecoverySet); /*  'end' 'ensure' 'rescue' /  'end' 'ensure' 'rescue' */
  3843.   }
  3844.   for (;;) {
  3845.     if ((xxToken == 82 /* 'rescue' */)) {
  3846.       xxUnion.xxLocalRecoverySet = 10; yyRescue (& Rescue1, & xxUnion); /*  'end' */
  3847. /* line 456 "eiffel_mey.ell" */
  3848.  Routine0->Tree->Routine.Rescue = Rescue1.Tree;                    
  3849.       break;
  3850.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  3851.     xxExpected (97, 97, xxGlobalRecoverySet); /*  'end' 'rescue' /  'end' 'rescue' */
  3852.   }
  3853. /* line 457 "eiffel_mey.ell" */
  3854.  comment_ref = no_comment;                                
  3855.   if (xxToken != 51 /* 'end' */)
  3856.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  3857.   else {
  3858.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  3859.   }
  3860. /* line 459 "eiffel_mey.ell" */
  3861.  Routine0->Tree->Routine.end_comment = comment_ref;                    
  3862. }
  3863.  
  3864. static void yyRoutine_body
  3865. # if defined __STDC__ | defined __cplusplus
  3866. (ParserMEY_tParsAttribute * Routine_body0, xxtUnionPtr xxGlobalRecoverySet)
  3867. # else
  3868. (Routine_body0, xxGlobalRecoverySet)
  3869. ParserMEY_tParsAttribute    * Routine_body0;
  3870. xxtUnionPtr    xxGlobalRecoverySet;
  3871. # endif
  3872. {
  3873.   ParserMEY_tParsAttribute Effective1;
  3874.   ParserMEY_tParsAttribute Deferred1;
  3875.   xxtUnion xxUnion;
  3876.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3877.   for (;;) {
  3878.     switch (xxToken) {
  3879.     case 47 /* do */ :; 
  3880.     case 55 /* 'external' */ :; 
  3881.     case 75 /* once */ :; 
  3882.       xxUnion.xxLocalRecoverySet = 0; yyEffective (& Effective1, & xxUnion); /*  */
  3883. /* line 463 "eiffel_mey.ell" */
  3884.  Routine_body0->Tree = Effective1.Tree;                        
  3885.       goto xx14;
  3886.     case 46 /* deferred */ :; 
  3887.       xxUnion.xxLocalRecoverySet = 0; yyDeferred (& Deferred1, & xxUnion); /*  */
  3888. /* line 464 "eiffel_mey.ell" */
  3889.  Routine_body0->Tree = Deferred1.Tree;                            
  3890.       goto xx14;
  3891.     case 48:;
  3892.     case 49:;
  3893.     case 50:;
  3894.     case 51:;
  3895.     case 52:;
  3896.     case 53:;
  3897.     case 54:;
  3898.     case 56:;
  3899.     case 57:;
  3900.     case 58:;
  3901.     case 59:;
  3902.     case 60:;
  3903.     case 61:;
  3904.     case 62:;
  3905.     case 63:;
  3906.     case 64:;
  3907.     case 65:;
  3908.     case 66:;
  3909.     case 67:;
  3910.     case 68:;
  3911.     case 69:;
  3912.     case 70:;
  3913.     case 71:;
  3914.     case 72:;
  3915.     case 73:;
  3916.     case 74:;
  3917.     default:
  3918.       if (xxIsRepairMode) {
  3919.         xxUnion.xxLocalRecoverySet = 0; yyEffective (& Effective1, & xxUnion); /*  */
  3920. /* line 463 "eiffel_mey.ell" */
  3921.  Routine_body0->Tree = Effective1.Tree;                        
  3922.         goto xx14;
  3923.       }
  3924.       xxExpected (98, 98, xxGlobalRecoverySet); /*  deferred do 'external' once /  deferred do 'external' once */
  3925.     }
  3926.   }
  3927.   xx14:;
  3928. }
  3929.  
  3930. static void yyEffective
  3931. # if defined __STDC__ | defined __cplusplus
  3932. (ParserMEY_tParsAttribute * Effective0, xxtUnionPtr xxGlobalRecoverySet)
  3933. # else
  3934. (Effective0, xxGlobalRecoverySet)
  3935. ParserMEY_tParsAttribute    * Effective0;
  3936. xxtUnionPtr    xxGlobalRecoverySet;
  3937. # endif
  3938. {
  3939.   ParserMEY_tParsAttribute Internal1;
  3940.   ParserMEY_tParsAttribute External1;
  3941.   xxtUnion xxUnion;
  3942.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  3943.   for (;;) {
  3944.     switch (xxToken) {
  3945.     case 47 /* do */ :; 
  3946.     case 75 /* once */ :; 
  3947.       xxUnion.xxLocalRecoverySet = 0; yyInternal (& Internal1, & xxUnion); /*  */
  3948. /* line 468 "eiffel_mey.ell" */
  3949.  Effective0->Tree = Internal1.Tree;                            
  3950.       goto xx15;
  3951.     case 55 /* 'external' */ :; 
  3952.       xxUnion.xxLocalRecoverySet = 0; yyExternal (& External1, & xxUnion); /*  */
  3953. /* line 469 "eiffel_mey.ell" */
  3954.  Effective0->Tree = External1.Tree;                            
  3955.       goto xx15;
  3956.     case 48:;
  3957.     case 49:;
  3958.     case 50:;
  3959.     case 51:;
  3960.     case 52:;
  3961.     case 53:;
  3962.     case 54:;
  3963.     case 56:;
  3964.     case 57:;
  3965.     case 58:;
  3966.     case 59:;
  3967.     case 60:;
  3968.     case 61:;
  3969.     case 62:;
  3970.     case 63:;
  3971.     case 64:;
  3972.     case 65:;
  3973.     case 66:;
  3974.     case 67:;
  3975.     case 68:;
  3976.     case 69:;
  3977.     case 70:;
  3978.     case 71:;
  3979.     case 72:;
  3980.     case 73:;
  3981.     case 74:;
  3982.     default:
  3983.       if (xxIsRepairMode) {
  3984.         xxUnion.xxLocalRecoverySet = 0; yyInternal (& Internal1, & xxUnion); /*  */
  3985. /* line 468 "eiffel_mey.ell" */
  3986.  Effective0->Tree = Internal1.Tree;                            
  3987.         goto xx15;
  3988.       }
  3989.       xxExpected (99, 99, xxGlobalRecoverySet); /*  do 'external' once /  do 'external' once */
  3990.     }
  3991.   }
  3992.   xx15:;
  3993. }
  3994.  
  3995. static void yyInternal
  3996. # if defined __STDC__ | defined __cplusplus
  3997. (ParserMEY_tParsAttribute * Internal0, xxtUnionPtr xxGlobalRecoverySet)
  3998. # else
  3999. (Internal0, xxGlobalRecoverySet)
  4000. ParserMEY_tParsAttribute    * Internal0;
  4001. xxtUnionPtr    xxGlobalRecoverySet;
  4002. # endif
  4003. {
  4004.     EiffelScan_tScanAttribute do1;
  4005.     EiffelScan_tScanAttribute once1;
  4006.   ParserMEY_tParsAttribute Compound1;
  4007.   xxtUnion xxUnion;
  4008.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4009.   for (;;) {
  4010.     switch (xxToken) {
  4011.     case 47 /* do */ :; 
  4012.       do1 =       EiffelScan_Attribute;
  4013.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4014.       xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  4015. /* line 473 "eiffel_mey.ell" */
  4016.  Internal0->Tree = mDo_body(ReverseTree(Compound1.Tree));                
  4017.       goto xx16;
  4018.     case 75 /* once */ :; 
  4019.       once1 =       EiffelScan_Attribute;
  4020.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4021.       xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  4022. /* line 474 "eiffel_mey.ell" */
  4023.  Internal0->Tree = mOnce_body(ReverseTree(Compound1.Tree));                
  4024.       goto xx16;
  4025.     case 48:;
  4026.     case 49:;
  4027.     case 50:;
  4028.     case 51:;
  4029.     case 52:;
  4030.     case 53:;
  4031.     case 54:;
  4032.     case 55:;
  4033.     case 56:;
  4034.     case 57:;
  4035.     case 58:;
  4036.     case 59:;
  4037.     case 60:;
  4038.     case 61:;
  4039.     case 62:;
  4040.     case 63:;
  4041.     case 64:;
  4042.     case 65:;
  4043.     case 66:;
  4044.     case 67:;
  4045.     case 68:;
  4046.     case 69:;
  4047.     case 70:;
  4048.     case 71:;
  4049.     case 72:;
  4050.     case 73:;
  4051.     case 74:;
  4052.     default:
  4053.       if (xxIsRepairMode) {
  4054.         if (xxToken != 47 /* do */)
  4055.           xxRecoveryTerminal (47, 100, xxGlobalRecoverySet, & do1); /*  ';' '!' '!!' '(' 'check' Current 'debug' do 'from' 'if' 'inspect' Result retry Id */
  4056.         else {
  4057.           do1 =         EiffelScan_Attribute;
  4058.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4059.         }
  4060.         xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  4061. /* line 473 "eiffel_mey.ell" */
  4062.  Internal0->Tree = mDo_body(ReverseTree(Compound1.Tree));                
  4063.         goto xx16;
  4064.       }
  4065.       xxExpected (102, 102, xxGlobalRecoverySet); /*  do once /  do once */
  4066.     }
  4067.   }
  4068.   xx16:;
  4069. }
  4070.  
  4071. static void yyDeferred
  4072. # if defined __STDC__ | defined __cplusplus
  4073. (ParserMEY_tParsAttribute * Deferred0, xxtUnionPtr xxGlobalRecoverySet)
  4074. # else
  4075. (Deferred0, xxGlobalRecoverySet)
  4076. ParserMEY_tParsAttribute    * Deferred0;
  4077. xxtUnionPtr    xxGlobalRecoverySet;
  4078. # endif
  4079. {
  4080.     EiffelScan_tScanAttribute deferred1;
  4081.   if (xxToken != 46 /* deferred */)
  4082.     xxRecoveryTerminal (46, 103, xxGlobalRecoverySet, & deferred1); /*  deferred */
  4083.   else {
  4084.     deferred1 =   EiffelScan_Attribute;
  4085.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4086.   }
  4087. /* line 478 "eiffel_mey.ell" */
  4088.  Deferred0->Tree = mDeferred(deferred1.Position);                    
  4089. }
  4090.  
  4091. static void yyLocal_declarations
  4092. # if defined __STDC__ | defined __cplusplus
  4093. (ParserMEY_tParsAttribute * Local_declarations0, xxtUnionPtr xxGlobalRecoverySet)
  4094. # else
  4095. (Local_declarations0, xxGlobalRecoverySet)
  4096. ParserMEY_tParsAttribute    * Local_declarations0;
  4097. xxtUnionPtr    xxGlobalRecoverySet;
  4098. # endif
  4099. {
  4100.   ParserMEY_tParsAttribute Entity_declaration_list1;
  4101.   xxtUnion xxUnion;
  4102.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4103.   if (xxToken != 70 /* 'local' */)
  4104.     xxRecoveryLiteral (70, 104, xxGlobalRecoverySet); /*  'local' Id */
  4105.   else {
  4106.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4107.   }
  4108.   xxUnion.xxLocalRecoverySet = 0; yyEntity_declaration_list (& Entity_declaration_list1, & xxUnion); /*  */
  4109. /* line 485 "eiffel_mey.ell" */
  4110.  Local_declarations0->Tree = ReverseTree(Entity_declaration_list1.Tree);    
  4111. }
  4112.  
  4113. static void yyInstruction
  4114. # if defined __STDC__ | defined __cplusplus
  4115. (ParserMEY_tParsAttribute * Instruction0, xxtUnionPtr xxGlobalRecoverySet)
  4116. # else
  4117. (Instruction0, xxGlobalRecoverySet)
  4118. ParserMEY_tParsAttribute    * Instruction0;
  4119. xxtUnionPtr    xxGlobalRecoverySet;
  4120. # endif
  4121. {
  4122.   ParserMEY_tParsAttribute Creation1;
  4123.   ParserMEY_tParsAttribute Qualified_call1;
  4124.   ParserMEY_tParsAttribute Current_instruct1;
  4125.   ParserMEY_tParsAttribute Result_instruct1;
  4126.   ParserMEY_tParsAttribute Ident_instruct1;
  4127.   ParserMEY_tParsAttribute Conditional1;
  4128.   ParserMEY_tParsAttribute Multi_branch1;
  4129.   ParserMEY_tParsAttribute Loop1;
  4130.   ParserMEY_tParsAttribute Debug1;
  4131.   ParserMEY_tParsAttribute Check1;
  4132.   ParserMEY_tParsAttribute Retry1;
  4133.   xxtUnion xxUnion;
  4134.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4135.   for (;;) {
  4136.     switch (xxToken) {
  4137.     case 11 /* '!' */ :; 
  4138.     case 12 /* '!!' */ :; 
  4139.       xxUnion.xxLocalRecoverySet = 0; yyCreation (& Creation1, & xxUnion); /*  */
  4140. /* line 492 "eiffel_mey.ell" */
  4141.  Instruction0->Tree = Creation1.Tree;                            
  4142.       goto xx17;
  4143.     case 17 /* '(' */ :; 
  4144.       xxUnion.xxLocalRecoverySet = 0; yyQualified_call (& Qualified_call1, & xxUnion); /*  */
  4145. /* line 493 "eiffel_mey.ell" */
  4146.  Instruction0->Tree = Qualified_call1.Tree;                        
  4147.       goto xx17;
  4148.     case 44 /* Current */ :; 
  4149.       xxUnion.xxLocalRecoverySet = 0; yyCurrent_instruct (& Current_instruct1, & xxUnion); /*  */
  4150. /* line 494 "eiffel_mey.ell" */
  4151.  Instruction0->Tree = Current_instruct1.Tree;                        
  4152.       goto xx17;
  4153.     case 83 /* Result */ :; 
  4154.       xxUnion.xxLocalRecoverySet = 0; yyResult_instruct (& Result_instruct1, & xxUnion); /*  */
  4155. /* line 495 "eiffel_mey.ell" */
  4156.  Instruction0->Tree = Result_instruct1.Tree;                        
  4157.       goto xx17;
  4158.     case 106 /* Id */ :; 
  4159.       xxUnion.xxLocalRecoverySet = 0; yyIdent_instruct (& Ident_instruct1, & xxUnion); /*  */
  4160. /* line 496 "eiffel_mey.ell" */
  4161.  Instruction0->Tree = Ident_instruct1.Tree;                        
  4162.       goto xx17;
  4163.     case 60 /* 'if' */ :; 
  4164.       xxUnion.xxLocalRecoverySet = 0; yyConditional (& Conditional1, & xxUnion); /*  */
  4165. /* line 497 "eiffel_mey.ell" */
  4166.  Instruction0->Tree = Conditional1.Tree;                        
  4167.       goto xx17;
  4168.     case 65 /* 'inspect' */ :; 
  4169.       xxUnion.xxLocalRecoverySet = 0; yyMulti_branch (& Multi_branch1, & xxUnion); /*  */
  4170. /* line 498 "eiffel_mey.ell" */
  4171.  Instruction0->Tree = Multi_branch1.Tree;                        
  4172.       goto xx17;
  4173.     case 58 /* 'from' */ :; 
  4174.       xxUnion.xxLocalRecoverySet = 0; yyLoop (& Loop1, & xxUnion); /*  */
  4175. /* line 499 "eiffel_mey.ell" */
  4176.  Instruction0->Tree = Loop1.Tree;                            
  4177.       goto xx17;
  4178.     case 45 /* 'debug' */ :; 
  4179.       xxUnion.xxLocalRecoverySet = 0; yyDebug (& Debug1, & xxUnion); /*  */
  4180. /* line 500 "eiffel_mey.ell" */
  4181.  Instruction0->Tree = Debug1.Tree;                            
  4182.       goto xx17;
  4183.     case 41 /* 'check' */ :; 
  4184.       xxUnion.xxLocalRecoverySet = 0; yyCheck (& Check1, & xxUnion); /*  */
  4185. /* line 501 "eiffel_mey.ell" */
  4186.  Instruction0->Tree = mCheck(Check1.Tree);                        
  4187.       goto xx17;
  4188.     case 84 /* retry */ :; 
  4189.       xxUnion.xxLocalRecoverySet = 0; yyRetry (& Retry1, & xxUnion); /*  */
  4190. /* line 502 "eiffel_mey.ell" */
  4191.  Instruction0->Tree = Retry1.Tree;                            
  4192.       goto xx17;
  4193.     case 7 /* ';' */ :; 
  4194.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4195. /* line 503 "eiffel_mey.ell" */
  4196.  Instruction0->Tree = NoTree;                                
  4197.       goto xx17;
  4198.     case 8:;
  4199.     case 9:;
  4200.     case 10:;
  4201.     case 13:;
  4202.     case 14:;
  4203.     case 15:;
  4204.     case 16:;
  4205.     case 18:;
  4206.     case 19:;
  4207.     case 20:;
  4208.     case 21:;
  4209.     case 22:;
  4210.     case 23:;
  4211.     case 24:;
  4212.     case 25:;
  4213.     case 26:;
  4214.     case 27:;
  4215.     case 28:;
  4216.     case 29:;
  4217.     case 30:;
  4218.     case 31:;
  4219.     case 32:;
  4220.     case 33:;
  4221.     case 34:;
  4222.     case 35:;
  4223.     case 36:;
  4224.     case 37:;
  4225.     case 38:;
  4226.     case 39:;
  4227.     case 40:;
  4228.     case 42:;
  4229.     case 43:;
  4230.     case 46:;
  4231.     case 47:;
  4232.     case 48:;
  4233.     case 49:;
  4234.     case 50:;
  4235.     case 51:;
  4236.     case 52:;
  4237.     case 53:;
  4238.     case 54:;
  4239.     case 55:;
  4240.     case 56:;
  4241.     case 57:;
  4242.     case 59:;
  4243.     case 61:;
  4244.     case 62:;
  4245.     case 63:;
  4246.     case 64:;
  4247.     case 66:;
  4248.     case 67:;
  4249.     case 68:;
  4250.     case 69:;
  4251.     case 70:;
  4252.     case 71:;
  4253.     case 72:;
  4254.     case 73:;
  4255.     case 74:;
  4256.     case 75:;
  4257.     case 76:;
  4258.     case 77:;
  4259.     case 78:;
  4260.     case 79:;
  4261.     case 80:;
  4262.     case 81:;
  4263.     case 82:;
  4264.     case 85:;
  4265.     case 86:;
  4266.     case 87:;
  4267.     case 88:;
  4268.     case 89:;
  4269.     case 90:;
  4270.     case 91:;
  4271.     case 92:;
  4272.     case 93:;
  4273.     case 94:;
  4274.     case 95:;
  4275.     case 96:;
  4276.     case 97:;
  4277.     case 98:;
  4278.     case 99:;
  4279.     case 100:;
  4280.     case 101:;
  4281.     case 102:;
  4282.     case 103:;
  4283.     case 104:;
  4284.     case 105:;
  4285.     default:
  4286.       if (xxIsRepairMode) {
  4287.         xxUnion.xxLocalRecoverySet = 0; yyCurrent_instruct (& Current_instruct1, & xxUnion); /*  */
  4288. /* line 494 "eiffel_mey.ell" */
  4289.  Instruction0->Tree = Current_instruct1.Tree;                        
  4290.         goto xx17;
  4291.       }
  4292.       xxExpected (105, 105, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  4293.     }
  4294.   }
  4295.   xx17:;
  4296. }
  4297.  
  4298. static void yyCurrent_instruct
  4299. # if defined __STDC__ | defined __cplusplus
  4300. (ParserMEY_tParsAttribute * Current_instruct0, xxtUnionPtr xxGlobalRecoverySet)
  4301. # else
  4302. (Current_instruct0, xxGlobalRecoverySet)
  4303. ParserMEY_tParsAttribute    * Current_instruct0;
  4304. xxtUnionPtr    xxGlobalRecoverySet;
  4305. # endif
  4306. {
  4307.     EiffelScan_tScanAttribute Current1;
  4308.   ParserMEY_tParsAttribute Actuals1;
  4309.   ParserMEY_tParsAttribute Call_chain1;
  4310.   xxtUnion xxUnion;
  4311.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4312.   if (xxToken != 44 /* Current */)
  4313.     xxRecoveryTerminal (44, 106, xxGlobalRecoverySet, & Current1); /*  '.' '(' Current */
  4314.   else {
  4315.     Current1 =   EiffelScan_Attribute;
  4316.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4317.   }
  4318. /* line 507 "eiffel_mey.ell" */
  4319.  Current_instruct0->Tree = mCall_chain1(mUnqual_call1( mCurrent(Current1.Position), 
  4320.                                         mActuals0()), mCall_chain0());     
  4321.   for (;;) {
  4322.     if ((xxToken == 17 /* '(' */)) {
  4323.       xxUnion.xxLocalRecoverySet = 108; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4324. /* line 509 "eiffel_mey.ell" */
  4325.  Current_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; 
  4326.       break;
  4327.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4328.     xxExpected (107, 107, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4329.   }
  4330.   for (;;) {
  4331.     if ((xxToken == 10 /* '.' */)) {
  4332.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4333.       xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4334. /* line 510 "eiffel_mey.ell" */
  4335.  Current_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4336.       break;
  4337.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4338.     xxExpected (108, 108, xxGlobalRecoverySet); /*  '.' /  '.' */
  4339.   }
  4340. /* line 511 "eiffel_mey.ell" */
  4341.  Current_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Current_instruct0->Tree)); 
  4342. }
  4343.  
  4344. static void yyResult_instruct
  4345. # if defined __STDC__ | defined __cplusplus
  4346. (ParserMEY_tParsAttribute * Result_instruct0, xxtUnionPtr xxGlobalRecoverySet)
  4347. # else
  4348. (Result_instruct0, xxGlobalRecoverySet)
  4349. ParserMEY_tParsAttribute    * Result_instruct0;
  4350. xxtUnionPtr    xxGlobalRecoverySet;
  4351. # endif
  4352. {
  4353.     EiffelScan_tScanAttribute Result1;
  4354.   ParserMEY_tParsAttribute Actuals1;
  4355.   ParserMEY_tParsAttribute Call_chain1;
  4356.   ParserMEY_tParsAttribute Expression1, Expression2;
  4357.   xxtUnion xxUnion;
  4358.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4359.   if (xxToken != 83 /* Result */)
  4360.     xxRecoveryTerminal (83, 110, xxGlobalRecoverySet, & Result1); /*  '.' '(' ':=' '?=' Result */
  4361.   else {
  4362.     Result1 =   EiffelScan_Attribute;
  4363.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4364.   }
  4365.   for (;;) {
  4366.     switch (xxToken) {
  4367.     case 1 /* Character_constant */ :; 
  4368.     case 2 /* Bit_sequence */ :; 
  4369.     case 3 /* Integer */ :; 
  4370.     case 4 /* Real */ :; 
  4371.     case 5 /* Manifest_string */ :; 
  4372.     case 6 /* Free_op */ :; 
  4373.     case 7 /* ';' */ :; 
  4374.     case 10 /* '.' */ :; 
  4375.     case 11 /* '!' */ :; 
  4376.     case 12 /* '!!' */ :; 
  4377.     case 17 /* '(' */ :; 
  4378.     case 23 /* '<<' */ :; 
  4379.     case 29 /* plus */ :; 
  4380.     case 30 /* minus */ :; 
  4381.     case 41 /* 'check' */ :; 
  4382.     case 44 /* Current */ :; 
  4383.     case 45 /* 'debug' */ :; 
  4384.     case 49 /* else */ :; 
  4385.     case 50 /* 'elseif' */ :; 
  4386.     case 51 /* 'end' */ :; 
  4387.     case 52 /* 'ensure' */ :; 
  4388.     case 56 /* false */ :; 
  4389.     case 58 /* 'from' */ :; 
  4390.     case 60 /* 'if' */ :; 
  4391.     case 65 /* 'inspect' */ :; 
  4392.     case 67 /* 'invariant' */ :; 
  4393.     case 74 /* 'old' */ :; 
  4394.     case 82 /* 'rescue' */ :; 
  4395.     case 83 /* Result */ :; 
  4396.     case 84 /* retry */ :; 
  4397.     case 88 /* 'strip' */ :; 
  4398.     case 90 /* true */ :; 
  4399.     case 93 /* 'until' */ :; 
  4400.     case 94 /* 'variant' */ :; 
  4401.     case 95 /* 'when' */ :; 
  4402.     case 105 /* not */ :; 
  4403.     case 106 /* Id */ :; 
  4404. /* line 516 "eiffel_mey.ell" */
  4405.  Result_instruct0->Tree = mCall_chain1(mUnqual_call1( mResult(Result1.Position), 
  4406.                                         mActuals0()), mCall_chain0());     
  4407.       for (;;) {
  4408.         if ((xxToken == 17 /* '(' */)) {
  4409.           xxUnion.xxLocalRecoverySet = 108; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4410. /* line 518 "eiffel_mey.ell" */
  4411.  Result_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; 
  4412.           break;
  4413.         } else if ((xxVerticalSet [xxToken + 432] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4414.         xxExpected (107, 107, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4415.       }
  4416.       for (;;) {
  4417.         if ((xxToken == 10 /* '.' */)) {
  4418.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4419.           xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4420. /* line 519 "eiffel_mey.ell" */
  4421.  Result_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4422.           break;
  4423.         } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4424.         xxExpected (108, 108, xxGlobalRecoverySet); /*  '.' /  '.' */
  4425.       }
  4426. /* line 520 "eiffel_mey.ell" */
  4427.  Result_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Result_instruct0->Tree)); 
  4428.       goto xx18;
  4429.     case 25 /* ':=' */ :; 
  4430.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4431.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  4432. /* line 521 "eiffel_mey.ell" */
  4433.  Result_instruct0->Tree = mAssign(mResult(Result1.Position), Expression1.Tree);    
  4434.       goto xx18;
  4435.     case 26 /* '?=' */ :; 
  4436.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4437.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression2, & xxUnion); /*  */
  4438. /* line 522 "eiffel_mey.ell" */
  4439.  Result_instruct0->Tree = mRev_assign(mResult(Result1.Position), Expression2.Tree);    
  4440.       goto xx18;
  4441.     case 8:;
  4442.     case 9:;
  4443.     case 13:;
  4444.     case 14:;
  4445.     case 15:;
  4446.     case 16:;
  4447.     case 18:;
  4448.     case 19:;
  4449.     case 20:;
  4450.     case 21:;
  4451.     case 22:;
  4452.     case 24:;
  4453.     case 27:;
  4454.     case 28:;
  4455.     case 31:;
  4456.     case 32:;
  4457.     case 33:;
  4458.     case 34:;
  4459.     case 35:;
  4460.     case 36:;
  4461.     case 37:;
  4462.     case 38:;
  4463.     case 39:;
  4464.     case 40:;
  4465.     case 42:;
  4466.     case 43:;
  4467.     case 46:;
  4468.     case 47:;
  4469.     case 48:;
  4470.     case 53:;
  4471.     case 54:;
  4472.     case 55:;
  4473.     case 57:;
  4474.     case 59:;
  4475.     case 61:;
  4476.     case 62:;
  4477.     case 63:;
  4478.     case 64:;
  4479.     case 66:;
  4480.     case 68:;
  4481.     case 69:;
  4482.     case 70:;
  4483.     case 71:;
  4484.     case 72:;
  4485.     case 73:;
  4486.     case 75:;
  4487.     case 76:;
  4488.     case 77:;
  4489.     case 78:;
  4490.     case 79:;
  4491.     case 80:;
  4492.     case 81:;
  4493.     case 85:;
  4494.     case 86:;
  4495.     case 87:;
  4496.     case 89:;
  4497.     case 91:;
  4498.     case 92:;
  4499.     case 96:;
  4500.     case 97:;
  4501.     case 98:;
  4502.     case 99:;
  4503.     case 100:;
  4504.     case 101:;
  4505.     case 102:;
  4506.     case 103:;
  4507.     case 104:;
  4508.     default:
  4509.       if (xxIsRepairMode) {
  4510. /* line 516 "eiffel_mey.ell" */
  4511.  Result_instruct0->Tree = mCall_chain1(mUnqual_call1( mResult(Result1.Position), 
  4512.                                         mActuals0()), mCall_chain0());     
  4513.         for (;;) {
  4514.           if ((xxToken == 17 /* '(' */)) {
  4515.             xxUnion.xxLocalRecoverySet = 108; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4516. /* line 518 "eiffel_mey.ell" */
  4517.  Result_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree; 
  4518.             break;
  4519.           } else if ((xxVerticalSet [xxToken + 432] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4520.           xxExpected (107, 107, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4521.         }
  4522.         for (;;) {
  4523.           if ((xxToken == 10 /* '.' */)) {
  4524.             xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4525.             xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4526. /* line 519 "eiffel_mey.ell" */
  4527.  Result_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4528.             break;
  4529.           } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4530.           xxExpected (108, 108, xxGlobalRecoverySet); /*  '.' /  '.' */
  4531.         }
  4532. /* line 520 "eiffel_mey.ell" */
  4533.  Result_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Result_instruct0->Tree)); 
  4534.         goto xx18;
  4535.       }
  4536.       xxExpected (113, 113, xxGlobalRecoverySet); /*  '.' '(' ':=' '?=' /  '.' '(' ':=' '?=' */
  4537.     }
  4538.   }
  4539.   xx18:;
  4540. }
  4541.  
  4542. static void yyIdent_instruct
  4543. # if defined __STDC__ | defined __cplusplus
  4544. (ParserMEY_tParsAttribute * Ident_instruct0, xxtUnionPtr xxGlobalRecoverySet)
  4545. # else
  4546. (Ident_instruct0, xxGlobalRecoverySet)
  4547. ParserMEY_tParsAttribute    * Ident_instruct0;
  4548. xxtUnionPtr    xxGlobalRecoverySet;
  4549. # endif
  4550. {
  4551.   ParserMEY_tParsAttribute Identifier1;
  4552.   ParserMEY_tParsAttribute Actuals1;
  4553.   ParserMEY_tParsAttribute Call_chain1;
  4554.   ParserMEY_tParsAttribute Expression1, Expression2;
  4555.   xxtUnion xxUnion;
  4556.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4557.   xxUnion.xxLocalRecoverySet = 113; yyIdentifier (& Identifier1, & xxUnion); /*  '.' '(' ':=' '?=' */
  4558.   for (;;) {
  4559.     switch (xxToken) {
  4560.     case 1 /* Character_constant */ :; 
  4561.     case 2 /* Bit_sequence */ :; 
  4562.     case 3 /* Integer */ :; 
  4563.     case 4 /* Real */ :; 
  4564.     case 5 /* Manifest_string */ :; 
  4565.     case 6 /* Free_op */ :; 
  4566.     case 7 /* ';' */ :; 
  4567.     case 10 /* '.' */ :; 
  4568.     case 11 /* '!' */ :; 
  4569.     case 12 /* '!!' */ :; 
  4570.     case 17 /* '(' */ :; 
  4571.     case 23 /* '<<' */ :; 
  4572.     case 29 /* plus */ :; 
  4573.     case 30 /* minus */ :; 
  4574.     case 41 /* 'check' */ :; 
  4575.     case 44 /* Current */ :; 
  4576.     case 45 /* 'debug' */ :; 
  4577.     case 49 /* else */ :; 
  4578.     case 50 /* 'elseif' */ :; 
  4579.     case 51 /* 'end' */ :; 
  4580.     case 52 /* 'ensure' */ :; 
  4581.     case 56 /* false */ :; 
  4582.     case 58 /* 'from' */ :; 
  4583.     case 60 /* 'if' */ :; 
  4584.     case 65 /* 'inspect' */ :; 
  4585.     case 67 /* 'invariant' */ :; 
  4586.     case 74 /* 'old' */ :; 
  4587.     case 82 /* 'rescue' */ :; 
  4588.     case 83 /* Result */ :; 
  4589.     case 84 /* retry */ :; 
  4590.     case 88 /* 'strip' */ :; 
  4591.     case 90 /* true */ :; 
  4592.     case 93 /* 'until' */ :; 
  4593.     case 94 /* 'variant' */ :; 
  4594.     case 95 /* 'when' */ :; 
  4595.     case 105 /* not */ :; 
  4596.     case 106 /* Id */ :; 
  4597. /* line 527 "eiffel_mey.ell" */
  4598.  Ident_instruct0->Tree = mCall_chain1(mUnqual_call1(Identifier1.Tree,
  4599.                                         mActuals0()),mCall_chain0());     
  4600.       for (;;) {
  4601.         if ((xxToken == 17 /* '(' */)) {
  4602.           xxUnion.xxLocalRecoverySet = 108; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4603. /* line 529 "eiffel_mey.ell" */
  4604.  Ident_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;    
  4605.           break;
  4606.         } else if ((xxVerticalSet [xxToken + 432] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4607.         xxExpected (107, 107, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4608.       }
  4609.       for (;;) {
  4610.         if ((xxToken == 10 /* '.' */)) {
  4611.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4612.           xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4613. /* line 530 "eiffel_mey.ell" */
  4614.  Ident_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4615.           break;
  4616.         } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4617.         xxExpected (108, 108, xxGlobalRecoverySet); /*  '.' /  '.' */
  4618.       }
  4619. /* line 531 "eiffel_mey.ell" */
  4620.  Ident_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Ident_instruct0->Tree)); 
  4621.       goto xx19;
  4622.     case 25 /* ':=' */ :; 
  4623.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4624.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  4625. /* line 532 "eiffel_mey.ell" */
  4626.  Ident_instruct0->Tree = mAssign(Identifier1.Tree, Expression1.Tree);            
  4627.       goto xx19;
  4628.     case 26 /* '?=' */ :; 
  4629.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4630.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression2, & xxUnion); /*  */
  4631. /* line 533 "eiffel_mey.ell" */
  4632.  Ident_instruct0->Tree = mRev_assign(Identifier1.Tree, Expression2.Tree);        
  4633.       goto xx19;
  4634.     case 8:;
  4635.     case 9:;
  4636.     case 13:;
  4637.     case 14:;
  4638.     case 15:;
  4639.     case 16:;
  4640.     case 18:;
  4641.     case 19:;
  4642.     case 20:;
  4643.     case 21:;
  4644.     case 22:;
  4645.     case 24:;
  4646.     case 27:;
  4647.     case 28:;
  4648.     case 31:;
  4649.     case 32:;
  4650.     case 33:;
  4651.     case 34:;
  4652.     case 35:;
  4653.     case 36:;
  4654.     case 37:;
  4655.     case 38:;
  4656.     case 39:;
  4657.     case 40:;
  4658.     case 42:;
  4659.     case 43:;
  4660.     case 46:;
  4661.     case 47:;
  4662.     case 48:;
  4663.     case 53:;
  4664.     case 54:;
  4665.     case 55:;
  4666.     case 57:;
  4667.     case 59:;
  4668.     case 61:;
  4669.     case 62:;
  4670.     case 63:;
  4671.     case 64:;
  4672.     case 66:;
  4673.     case 68:;
  4674.     case 69:;
  4675.     case 70:;
  4676.     case 71:;
  4677.     case 72:;
  4678.     case 73:;
  4679.     case 75:;
  4680.     case 76:;
  4681.     case 77:;
  4682.     case 78:;
  4683.     case 79:;
  4684.     case 80:;
  4685.     case 81:;
  4686.     case 85:;
  4687.     case 86:;
  4688.     case 87:;
  4689.     case 89:;
  4690.     case 91:;
  4691.     case 92:;
  4692.     case 96:;
  4693.     case 97:;
  4694.     case 98:;
  4695.     case 99:;
  4696.     case 100:;
  4697.     case 101:;
  4698.     case 102:;
  4699.     case 103:;
  4700.     case 104:;
  4701.     default:
  4702.       if (xxIsRepairMode) {
  4703. /* line 527 "eiffel_mey.ell" */
  4704.  Ident_instruct0->Tree = mCall_chain1(mUnqual_call1(Identifier1.Tree,
  4705.                                         mActuals0()),mCall_chain0());     
  4706.         for (;;) {
  4707.           if ((xxToken == 17 /* '(' */)) {
  4708.             xxUnion.xxLocalRecoverySet = 108; yyActuals (& Actuals1, & xxUnion); /*  '.' */
  4709. /* line 529 "eiffel_mey.ell" */
  4710.  Ident_instruct0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;    
  4711.             break;
  4712.           } else if ((xxVerticalSet [xxToken + 432] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4713.           xxExpected (107, 107, xxGlobalRecoverySet); /*  '.' '(' /  '.' '(' */
  4714.         }
  4715.         for (;;) {
  4716.           if ((xxToken == 10 /* '.' */)) {
  4717.             xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4718.             xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  4719. /* line 530 "eiffel_mey.ell" */
  4720.  Ident_instruct0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;             
  4721.             break;
  4722.           } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  4723.           xxExpected (108, 108, xxGlobalRecoverySet); /*  '.' /  '.' */
  4724.         }
  4725. /* line 531 "eiffel_mey.ell" */
  4726.  Ident_instruct0->Tree = mCall_instruct(mCall(mExpression0(), Ident_instruct0->Tree)); 
  4727.         goto xx19;
  4728.       }
  4729.       xxExpected (113, 113, xxGlobalRecoverySet); /*  '.' '(' ':=' '?=' /  '.' '(' ':=' '?=' */
  4730.     }
  4731.   }
  4732.   xx19:;
  4733. }
  4734.  
  4735. static void yyPrecondition
  4736. # if defined __STDC__ | defined __cplusplus
  4737. (ParserMEY_tParsAttribute * Precondition0, xxtUnionPtr xxGlobalRecoverySet)
  4738. # else
  4739. (Precondition0, xxGlobalRecoverySet)
  4740. ParserMEY_tParsAttribute    * Precondition0;
  4741. xxtUnionPtr    xxGlobalRecoverySet;
  4742. # endif
  4743. {
  4744.     EiffelScan_tScanAttribute else1;
  4745.   ParserMEY_tParsAttribute Assertion1;
  4746.   xxtUnion xxUnion;
  4747.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4748. /* line 537 "eiffel_mey.ell" */
  4749.  Precondition0->Tree = mCondition1(VOID, mAssertion0());                    
  4750.   if (xxToken != 81 /* 'require' */)
  4751.     xxRecoveryLiteral (81, 114, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else false 'old' 'require' Result 'strip' true not Id Comment */
  4752.   else {
  4753.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4754.   }
  4755.   for (;;) {
  4756.     if ((xxToken == 49 /* else */)) {
  4757.       else1 =       EiffelScan_Attribute;
  4758.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4759. /* line 538 "eiffel_mey.ell" */
  4760.  Precondition0->Tree->Condition1.extension = ELSE;                    
  4761.       break;
  4762.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current deferred do 'external' false 'local' 'old' once Result 'strip' true not Id Comment */) || xxIsRepairMode) break;
  4763.     xxExpected (115, 115, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else false 'old' Result 'strip' true not Id Comment */
  4764.   }
  4765.   xxUnion.xxLocalRecoverySet = 0; yyAssertion (& Assertion1, & xxUnion); /*  */
  4766. /* line 539 "eiffel_mey.ell" */
  4767.  Precondition0->Tree->Condition1.Assertion = ReverseTree(Assertion1.Tree);        
  4768. }
  4769.  
  4770. static void yyPostcondition
  4771. # if defined __STDC__ | defined __cplusplus
  4772. (ParserMEY_tParsAttribute * Postcondition0, xxtUnionPtr xxGlobalRecoverySet)
  4773. # else
  4774. (Postcondition0, xxGlobalRecoverySet)
  4775. ParserMEY_tParsAttribute    * Postcondition0;
  4776. xxtUnionPtr    xxGlobalRecoverySet;
  4777. # endif
  4778. {
  4779.     EiffelScan_tScanAttribute then1;
  4780.   ParserMEY_tParsAttribute Assertion1;
  4781.   xxtUnion xxUnion;
  4782.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4783. /* line 542 "eiffel_mey.ell" */
  4784.  Postcondition0->Tree = mCondition1(VOID, mAssertion0());                
  4785.   if (xxToken != 52 /* 'ensure' */)
  4786.     xxRecoveryLiteral (52, 116, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'ensure' false 'old' Result 'strip' then true not Id Comment */
  4787.   else {
  4788.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4789.   }
  4790.   for (;;) {
  4791.     if ((xxToken == 89 /* then */)) {
  4792.       then1 =       EiffelScan_Attribute;
  4793.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4794. /* line 543 "eiffel_mey.ell" */
  4795.  Postcondition0->Tree->Condition1.extension = THEN;                    
  4796.       break;
  4797.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'old' 'rescue' Result 'strip' true not Id Comment */) || xxIsRepairMode) break;
  4798.     xxExpected (117, 117, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' then true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' then true not Id Comment */
  4799.   }
  4800.   xxUnion.xxLocalRecoverySet = 0; yyAssertion (& Assertion1, & xxUnion); /*  */
  4801. /* line 544 "eiffel_mey.ell" */
  4802.  Postcondition0->Tree->Condition1.Assertion = ReverseTree(Assertion1.Tree);        
  4803. }
  4804.  
  4805. static void yyInvariant
  4806. # if defined __STDC__ | defined __cplusplus
  4807. (ParserMEY_tParsAttribute * Invariant0, xxtUnionPtr xxGlobalRecoverySet)
  4808. # else
  4809. (Invariant0, xxGlobalRecoverySet)
  4810. ParserMEY_tParsAttribute    * Invariant0;
  4811. xxtUnionPtr    xxGlobalRecoverySet;
  4812. # endif
  4813. {
  4814.   ParserMEY_tParsAttribute Assertion1;
  4815.   xxtUnion xxUnion;
  4816.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4817.   if (xxToken != 67 /* 'invariant' */)
  4818.     xxRecoveryLiteral (67, 118, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'invariant' 'old' Result 'strip' true not Id Comment */
  4819.   else {
  4820.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4821.   }
  4822.   xxUnion.xxLocalRecoverySet = 0; yyAssertion (& Assertion1, & xxUnion); /*  */
  4823. /* line 548 "eiffel_mey.ell" */
  4824.  Invariant0->Tree = mCondition1(VOID, ReverseTree(Assertion1.Tree));            
  4825. }
  4826.  
  4827. static void yyAssertion
  4828. # if defined __STDC__ | defined __cplusplus
  4829. (ParserMEY_tParsAttribute * Assertion0, xxtUnionPtr xxGlobalRecoverySet)
  4830. # else
  4831. (Assertion0, xxGlobalRecoverySet)
  4832. ParserMEY_tParsAttribute    * Assertion0;
  4833. xxtUnionPtr    xxGlobalRecoverySet;
  4834. # endif
  4835. {
  4836.   ParserMEY_tParsAttribute Assertion_clause1, Assertion_clause2;
  4837.   xxtUnion xxUnion;
  4838.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4839. /* line 551 "eiffel_mey.ell" */
  4840.  Assertion0->Tree = mAssertion0();                             
  4841.   for (;;) {
  4842.     if ((xxVerticalSet [xxToken + 432] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */)) {
  4843.       xxUnion.xxLocalRecoverySet = 120; yyAssertion_clause (& Assertion_clause1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  4844. /* line 552 "eiffel_mey.ell" */
  4845.  Assertion0->Tree = mAssertion1(Assertion_clause1.Tree, Assertion0->Tree);         
  4846.       for (;;) {
  4847.         if ((xxVerticalSet [xxToken + 540] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */)) {
  4848.           for (;;) {
  4849.             if ((xxToken == 7 /* ';' */)) {
  4850.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4851.               break;
  4852.             } else if ((xxVerticalSet [xxToken + 432] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */) || xxIsRepairMode) break;
  4853.             xxExpected (120, 120, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  4854.           }
  4855.           xxUnion.xxLocalRecoverySet = 0; yyAssertion_clause (& Assertion_clause2, & xxUnion); /*  */
  4856. /* line 553 "eiffel_mey.ell" */
  4857.  Assertion0->Tree = mAssertion1(Assertion_clause2.Tree, Assertion0->Tree);     
  4858.         } else if ((xxVerticalSet [xxToken + 540] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id */) || xxIsRepairMode) break;
  4859.         else
  4860.           xxExpected (120, 120, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  4861.       }
  4862.       break;
  4863.     } else if ((xxVerticalSet [xxToken + 540] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id */) || xxIsRepairMode) break;
  4864.     xxExpected (119, 119, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  4865.   }
  4866. }
  4867.  
  4868. static void yyAssertion_clause
  4869. # if defined __STDC__ | defined __cplusplus
  4870. (ParserMEY_tParsAttribute * Assertion_clause0, xxtUnionPtr xxGlobalRecoverySet)
  4871. # else
  4872. (Assertion_clause0, xxGlobalRecoverySet)
  4873. ParserMEY_tParsAttribute    * Assertion_clause0;
  4874. xxtUnionPtr    xxGlobalRecoverySet;
  4875. # endif
  4876. {
  4877.   ParserMEY_tParsAttribute Actuals1;
  4878.   ParserMEY_tParsAttribute Call_chain1;
  4879.   ParserMEY_tParsAttribute Tag1;
  4880.   ParserMEY_tParsAttribute Unlabeled_assertion_clause1;
  4881.   ParserMEY_tParsAttribute Expr_tail1;
  4882.   xxtUnion xxUnion;
  4883.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  4884.   for (;;) {
  4885.     switch (xxToken) {
  4886.     case 106 /* Id */ :; 
  4887.       xxUnion.xxLocalRecoverySet = 121; yyTag (& Tag1, & xxUnion); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4888.       for (;;) {
  4889.         switch (xxToken) {
  4890.         case 9 /* ':' */ :; 
  4891. /* line 557 "eiffel_mey.ell" */
  4892.  comment_possible = ON; 
  4893.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4894.           xxUnion.xxLocalRecoverySet = 0; yyUnlabeled_assertion_clause (& Unlabeled_assertion_clause1, & xxUnion); /*  */
  4895. /* line 558 "eiffel_mey.ell" */
  4896.  Assertion_clause0->Tree = mAssertion_clause1(Tag1.Tree, 
  4897.                                 Unlabeled_assertion_clause1.Tree);         
  4898.           goto xx21;
  4899.         case 1 /* Character_constant */ :; 
  4900.         case 2 /* Bit_sequence */ :; 
  4901.         case 3 /* Integer */ :; 
  4902.         case 4 /* Real */ :; 
  4903.         case 5 /* Manifest_string */ :; 
  4904.         case 6 /* Free_op */ :; 
  4905.         case 7 /* ';' */ :; 
  4906.         case 10 /* '.' */ :; 
  4907.         case 13 /* Eq */ :; 
  4908.         case 14 /* Not_eq */ :; 
  4909.         case 17 /* '(' */ :; 
  4910.         case 23 /* '<<' */ :; 
  4911.         case 29 /* plus */ :; 
  4912.         case 30 /* minus */ :; 
  4913.         case 33 /* div */ :; 
  4914.         case 36 /* and */ :; 
  4915.         case 44 /* Current */ :; 
  4916.         case 46 /* deferred */ :; 
  4917.         case 47 /* do */ :; 
  4918.         case 51 /* 'end' */ :; 
  4919.         case 55 /* 'external' */ :; 
  4920.         case 56 /* false */ :; 
  4921.         case 61 /* implies */ :; 
  4922.         case 70 /* 'local' */ :; 
  4923.         case 74 /* 'old' */ :; 
  4924.         case 75 /* once */ :; 
  4925.         case 76 /* or */ :; 
  4926.         case 82 /* 'rescue' */ :; 
  4927.         case 83 /* Result */ :; 
  4928.         case 88 /* 'strip' */ :; 
  4929.         case 90 /* true */ :; 
  4930.         case 93 /* 'until' */ :; 
  4931.         case 94 /* 'variant' */ :; 
  4932.         case 96 /* xor */ :; 
  4933.         case 97 /* times */ :; 
  4934.         case 98 /* smaller */ :; 
  4935.         case 99 /* greater */ :; 
  4936.         case 100 /* sm_eq */ :; 
  4937.         case 101 /* gr_eq */ :; 
  4938.         case 102 /* idiv */ :; 
  4939.         case 103 /* imod */ :; 
  4940.         case 104 /* power */ :; 
  4941.         case 105 /* not */ :; 
  4942.         case 106 /* Id */ :; 
  4943.         case 107 /* Comment */ :; 
  4944. /* line 560 "eiffel_mey.ell" */
  4945.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), 
  4946.                                             mCall_chain0());    
  4947.           for (;;) {
  4948.             if ((xxToken == 17 /* '(' */)) {
  4949.               xxUnion.xxLocalRecoverySet = 124; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4950. /* line 562 "eiffel_mey.ell" */
  4951.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), 
  4952.                                                     mCall_chain0());
  4953.               break;
  4954.             } else if ((xxVerticalSet [xxToken + 540] & 1 << 2 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  4955.             xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4956.           }
  4957.           for (;;) {
  4958.             if ((xxToken == 10 /* '.' */)) {
  4959.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  4960.               xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4961. /* line 564 "eiffel_mey.ell" */
  4962.  Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;         
  4963.               break;
  4964.             } else if ((xxVerticalSet [xxToken + 540] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  4965.             xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4966.           }
  4967. /* line 565 "eiffel_mey.ell" */
  4968.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  4969.                                    mCall(mExpression0(), Assertion_clause0->Tree)); 
  4970.           for (;;) {
  4971.             if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  4972.               xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  4973. /* line 568 "eiffel_mey.ell" */
  4974.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  4975.                         mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, 
  4976.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop));    
  4977.               break;
  4978.             } else if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id Comment */) || xxIsRepairMode) break;
  4979.             xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  4980.           }
  4981.           goto xx21;
  4982.         case 8:;
  4983.         case 11:;
  4984.         case 12:;
  4985.         case 15:;
  4986.         case 16:;
  4987.         case 18:;
  4988.         case 19:;
  4989.         case 20:;
  4990.         case 21:;
  4991.         case 22:;
  4992.         case 24:;
  4993.         case 25:;
  4994.         case 26:;
  4995.         case 27:;
  4996.         case 28:;
  4997.         case 31:;
  4998.         case 32:;
  4999.         case 34:;
  5000.         case 35:;
  5001.         case 37:;
  5002.         case 38:;
  5003.         case 39:;
  5004.         case 40:;
  5005.         case 41:;
  5006.         case 42:;
  5007.         case 43:;
  5008.         case 45:;
  5009.         case 48:;
  5010.         case 49:;
  5011.         case 50:;
  5012.         case 52:;
  5013.         case 53:;
  5014.         case 54:;
  5015.         case 57:;
  5016.         case 58:;
  5017.         case 59:;
  5018.         case 60:;
  5019.         case 62:;
  5020.         case 63:;
  5021.         case 64:;
  5022.         case 65:;
  5023.         case 66:;
  5024.         case 67:;
  5025.         case 68:;
  5026.         case 69:;
  5027.         case 71:;
  5028.         case 72:;
  5029.         case 73:;
  5030.         case 77:;
  5031.         case 78:;
  5032.         case 79:;
  5033.         case 80:;
  5034.         case 81:;
  5035.         case 84:;
  5036.         case 85:;
  5037.         case 86:;
  5038.         case 87:;
  5039.         case 89:;
  5040.         case 91:;
  5041.         case 92:;
  5042.         case 95:;
  5043.         default:
  5044.           if (xxIsRepairMode) {
  5045. /* line 560 "eiffel_mey.ell" */
  5046.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), 
  5047.                                             mCall_chain0());    
  5048.             for (;;) {
  5049.               if ((xxToken == 17 /* '(' */)) {
  5050.                 xxUnion.xxLocalRecoverySet = 124; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5051. /* line 562 "eiffel_mey.ell" */
  5052.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), 
  5053.                                                     mCall_chain0());
  5054.                 break;
  5055.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 2 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5056.               xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5057.             }
  5058.             for (;;) {
  5059.               if ((xxToken == 10 /* '.' */)) {
  5060.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5061.                 xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5062. /* line 564 "eiffel_mey.ell" */
  5063.  Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;         
  5064.                 break;
  5065.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5066.               xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5067.             }
  5068. /* line 565 "eiffel_mey.ell" */
  5069.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5070.                                    mCall(mExpression0(), Assertion_clause0->Tree)); 
  5071.             for (;;) {
  5072.               if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5073.                 xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5074. /* line 568 "eiffel_mey.ell" */
  5075.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5076.                         mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, 
  5077.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop));    
  5078.                 break;
  5079.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id Comment */) || xxIsRepairMode) break;
  5080.               xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5081.             }
  5082.             goto xx21;
  5083.           }
  5084.           xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5085.         }
  5086.       }
  5087.       xx21:;
  5088.       goto xx20;
  5089.     case 1 /* Character_constant */ :; 
  5090.     case 2 /* Bit_sequence */ :; 
  5091.     case 3 /* Integer */ :; 
  5092.     case 4 /* Real */ :; 
  5093.     case 5 /* Manifest_string */ :; 
  5094.     case 6 /* Free_op */ :; 
  5095.     case 17 /* '(' */ :; 
  5096.     case 23 /* '<<' */ :; 
  5097.     case 29 /* plus */ :; 
  5098.     case 30 /* minus */ :; 
  5099.     case 44 /* Current */ :; 
  5100.     case 56 /* false */ :; 
  5101.     case 74 /* 'old' */ :; 
  5102.     case 83 /* Result */ :; 
  5103.     case 88 /* 'strip' */ :; 
  5104.     case 90 /* true */ :; 
  5105.     case 105 /* not */ :; 
  5106.     case 107 /* Comment */ :; 
  5107.       xxUnion.xxLocalRecoverySet = 0; yyUnlabeled_assertion_clause (& Unlabeled_assertion_clause1, & xxUnion); /*  */
  5108. /* line 571 "eiffel_mey.ell" */
  5109.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5110.                                     Unlabeled_assertion_clause1.Tree);     
  5111.       goto xx20;
  5112.     case 7:;
  5113.     case 8:;
  5114.     case 9:;
  5115.     case 10:;
  5116.     case 11:;
  5117.     case 12:;
  5118.     case 13:;
  5119.     case 14:;
  5120.     case 15:;
  5121.     case 16:;
  5122.     case 18:;
  5123.     case 19:;
  5124.     case 20:;
  5125.     case 21:;
  5126.     case 22:;
  5127.     case 24:;
  5128.     case 25:;
  5129.     case 26:;
  5130.     case 27:;
  5131.     case 28:;
  5132.     case 31:;
  5133.     case 32:;
  5134.     case 33:;
  5135.     case 34:;
  5136.     case 35:;
  5137.     case 36:;
  5138.     case 37:;
  5139.     case 38:;
  5140.     case 39:;
  5141.     case 40:;
  5142.     case 41:;
  5143.     case 42:;
  5144.     case 43:;
  5145.     case 45:;
  5146.     case 46:;
  5147.     case 47:;
  5148.     case 48:;
  5149.     case 49:;
  5150.     case 50:;
  5151.     case 51:;
  5152.     case 52:;
  5153.     case 53:;
  5154.     case 54:;
  5155.     case 55:;
  5156.     case 57:;
  5157.     case 58:;
  5158.     case 59:;
  5159.     case 60:;
  5160.     case 61:;
  5161.     case 62:;
  5162.     case 63:;
  5163.     case 64:;
  5164.     case 65:;
  5165.     case 66:;
  5166.     case 67:;
  5167.     case 68:;
  5168.     case 69:;
  5169.     case 70:;
  5170.     case 71:;
  5171.     case 72:;
  5172.     case 73:;
  5173.     case 75:;
  5174.     case 76:;
  5175.     case 77:;
  5176.     case 78:;
  5177.     case 79:;
  5178.     case 80:;
  5179.     case 81:;
  5180.     case 82:;
  5181.     case 84:;
  5182.     case 85:;
  5183.     case 86:;
  5184.     case 87:;
  5185.     case 89:;
  5186.     case 91:;
  5187.     case 92:;
  5188.     case 93:;
  5189.     case 94:;
  5190.     case 95:;
  5191.     case 96:;
  5192.     case 97:;
  5193.     case 98:;
  5194.     case 99:;
  5195.     case 100:;
  5196.     case 101:;
  5197.     case 102:;
  5198.     case 103:;
  5199.     case 104:;
  5200.     default:
  5201.       if (xxIsRepairMode) {
  5202.         xxUnion.xxLocalRecoverySet = 121; yyTag (& Tag1, & xxUnion); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5203.         for (;;) {
  5204.           switch (xxToken) {
  5205.           case 9 /* ':' */ :; 
  5206. /* line 557 "eiffel_mey.ell" */
  5207.  comment_possible = ON; 
  5208.             if (xxToken != 9 /* ':' */)
  5209.               xxRecoveryLiteral (9, 122, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ':' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  5210.             else {
  5211.               xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5212.             }
  5213.             xxUnion.xxLocalRecoverySet = 0; yyUnlabeled_assertion_clause (& Unlabeled_assertion_clause1, & xxUnion); /*  */
  5214. /* line 558 "eiffel_mey.ell" */
  5215.  Assertion_clause0->Tree = mAssertion_clause1(Tag1.Tree, 
  5216.                                 Unlabeled_assertion_clause1.Tree);         
  5217.             goto xx22;
  5218.           case 1 /* Character_constant */ :; 
  5219.           case 2 /* Bit_sequence */ :; 
  5220.           case 3 /* Integer */ :; 
  5221.           case 4 /* Real */ :; 
  5222.           case 5 /* Manifest_string */ :; 
  5223.           case 6 /* Free_op */ :; 
  5224.           case 7 /* ';' */ :; 
  5225.           case 10 /* '.' */ :; 
  5226.           case 13 /* Eq */ :; 
  5227.           case 14 /* Not_eq */ :; 
  5228.           case 17 /* '(' */ :; 
  5229.           case 23 /* '<<' */ :; 
  5230.           case 29 /* plus */ :; 
  5231.           case 30 /* minus */ :; 
  5232.           case 33 /* div */ :; 
  5233.           case 36 /* and */ :; 
  5234.           case 44 /* Current */ :; 
  5235.           case 46 /* deferred */ :; 
  5236.           case 47 /* do */ :; 
  5237.           case 51 /* 'end' */ :; 
  5238.           case 55 /* 'external' */ :; 
  5239.           case 56 /* false */ :; 
  5240.           case 61 /* implies */ :; 
  5241.           case 70 /* 'local' */ :; 
  5242.           case 74 /* 'old' */ :; 
  5243.           case 75 /* once */ :; 
  5244.           case 76 /* or */ :; 
  5245.           case 82 /* 'rescue' */ :; 
  5246.           case 83 /* Result */ :; 
  5247.           case 88 /* 'strip' */ :; 
  5248.           case 90 /* true */ :; 
  5249.           case 93 /* 'until' */ :; 
  5250.           case 94 /* 'variant' */ :; 
  5251.           case 96 /* xor */ :; 
  5252.           case 97 /* times */ :; 
  5253.           case 98 /* smaller */ :; 
  5254.           case 99 /* greater */ :; 
  5255.           case 100 /* sm_eq */ :; 
  5256.           case 101 /* gr_eq */ :; 
  5257.           case 102 /* idiv */ :; 
  5258.           case 103 /* imod */ :; 
  5259.           case 104 /* power */ :; 
  5260.           case 105 /* not */ :; 
  5261.           case 106 /* Id */ :; 
  5262.           case 107 /* Comment */ :; 
  5263. /* line 560 "eiffel_mey.ell" */
  5264.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), 
  5265.                                             mCall_chain0());    
  5266.             for (;;) {
  5267.               if ((xxToken == 17 /* '(' */)) {
  5268.                 xxUnion.xxLocalRecoverySet = 124; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5269. /* line 562 "eiffel_mey.ell" */
  5270.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), 
  5271.                                                     mCall_chain0());
  5272.                 break;
  5273.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 2 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5274.               xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5275.             }
  5276.             for (;;) {
  5277.               if ((xxToken == 10 /* '.' */)) {
  5278.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5279.                 xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5280. /* line 564 "eiffel_mey.ell" */
  5281.  Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;         
  5282.                 break;
  5283.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5284.               xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5285.             }
  5286. /* line 565 "eiffel_mey.ell" */
  5287.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5288.                                    mCall(mExpression0(), Assertion_clause0->Tree)); 
  5289.             for (;;) {
  5290.               if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5291.                 xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5292. /* line 568 "eiffel_mey.ell" */
  5293.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5294.                         mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, 
  5295.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop));    
  5296.                 break;
  5297.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id Comment */) || xxIsRepairMode) break;
  5298.               xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5299.             }
  5300.             goto xx22;
  5301.           case 8:;
  5302.           case 11:;
  5303.           case 12:;
  5304.           case 15:;
  5305.           case 16:;
  5306.           case 18:;
  5307.           case 19:;
  5308.           case 20:;
  5309.           case 21:;
  5310.           case 22:;
  5311.           case 24:;
  5312.           case 25:;
  5313.           case 26:;
  5314.           case 27:;
  5315.           case 28:;
  5316.           case 31:;
  5317.           case 32:;
  5318.           case 34:;
  5319.           case 35:;
  5320.           case 37:;
  5321.           case 38:;
  5322.           case 39:;
  5323.           case 40:;
  5324.           case 41:;
  5325.           case 42:;
  5326.           case 43:;
  5327.           case 45:;
  5328.           case 48:;
  5329.           case 49:;
  5330.           case 50:;
  5331.           case 52:;
  5332.           case 53:;
  5333.           case 54:;
  5334.           case 57:;
  5335.           case 58:;
  5336.           case 59:;
  5337.           case 60:;
  5338.           case 62:;
  5339.           case 63:;
  5340.           case 64:;
  5341.           case 65:;
  5342.           case 66:;
  5343.           case 67:;
  5344.           case 68:;
  5345.           case 69:;
  5346.           case 71:;
  5347.           case 72:;
  5348.           case 73:;
  5349.           case 77:;
  5350.           case 78:;
  5351.           case 79:;
  5352.           case 80:;
  5353.           case 81:;
  5354.           case 84:;
  5355.           case 85:;
  5356.           case 86:;
  5357.           case 87:;
  5358.           case 89:;
  5359.           case 91:;
  5360.           case 92:;
  5361.           case 95:;
  5362.           default:
  5363.             if (xxIsRepairMode) {
  5364. /* line 560 "eiffel_mey.ell" */
  5365.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree,mActuals0()), 
  5366.                                             mCall_chain0());    
  5367.               for (;;) {
  5368.                 if ((xxToken == 17 /* '(' */)) {
  5369.                   xxUnion.xxLocalRecoverySet = 124; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5370. /* line 562 "eiffel_mey.ell" */
  5371.  Assertion_clause0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, Actuals1.Tree), 
  5372.                                                     mCall_chain0());
  5373.                   break;
  5374.                 } else if ((xxVerticalSet [xxToken + 540] & 1 << 2 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '.' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5375.                 xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5376.               }
  5377.               for (;;) {
  5378.                 if ((xxToken == 10 /* '.' */)) {
  5379.                   xxToken =                   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5380.                   xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5381. /* line 564 "eiffel_mey.ell" */
  5382.  Assertion_clause0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;         
  5383.                   break;
  5384.                 } else if ((xxVerticalSet [xxToken + 540] & 1 << 3 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' Eq Not_eq '(' '<<' plus minus div and Current deferred do 'end' 'external' false implies 'local' 'old' once or 'rescue' Result 'strip' true 'until' 'variant' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  5385.                 xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5386.               }
  5387. /* line 565 "eiffel_mey.ell" */
  5388.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5389.                                    mCall(mExpression0(), Assertion_clause0->Tree)); 
  5390.               for (;;) {
  5391.                 if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5392.                   xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5393. /* line 568 "eiffel_mey.ell" */
  5394.  Assertion_clause0->Tree = mAssertion_clause1(mManifest_constant0(), 
  5395.                         mBin_expr(Assertion_clause0->Tree->Assertion_clause1.Expression, 
  5396.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop));    
  5397.                   break;
  5398.                 } else if ((xxVerticalSet [xxToken + 540] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '(' '<<' plus minus Current deferred do 'end' 'external' false 'local' 'old' once 'rescue' Result 'strip' true 'until' 'variant' not Id Comment */) || xxIsRepairMode) break;
  5399.                 xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5400.               }
  5401.               goto xx22;
  5402.             }
  5403.             xxExpected (121, 121, xxGlobalRecoverySet); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5404.           }
  5405.         }
  5406.         xx22:;
  5407.         goto xx20;
  5408.       }
  5409.       xxExpected (119, 119, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  5410.     }
  5411.   }
  5412.   xx20:;
  5413. }
  5414.  
  5415. static void yyUnlabeled_assertion_clause
  5416. # if defined __STDC__ | defined __cplusplus
  5417. (ParserMEY_tParsAttribute * Unlabeled_assertion_clause0, xxtUnionPtr xxGlobalRecoverySet)
  5418. # else
  5419. (Unlabeled_assertion_clause0, xxGlobalRecoverySet)
  5420. ParserMEY_tParsAttribute    * Unlabeled_assertion_clause0;
  5421. xxtUnionPtr    xxGlobalRecoverySet;
  5422. # endif
  5423. {
  5424.     EiffelScan_tScanAttribute Comment1;
  5425.   ParserMEY_tParsAttribute Boolean_expression1;
  5426.   xxtUnion xxUnion;
  5427.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5428.   for (;;) {
  5429.     switch (xxToken) {
  5430.     case 1 /* Character_constant */ :; 
  5431.     case 2 /* Bit_sequence */ :; 
  5432.     case 3 /* Integer */ :; 
  5433.     case 4 /* Real */ :; 
  5434.     case 5 /* Manifest_string */ :; 
  5435.     case 6 /* Free_op */ :; 
  5436.     case 17 /* '(' */ :; 
  5437.     case 23 /* '<<' */ :; 
  5438.     case 29 /* plus */ :; 
  5439.     case 30 /* minus */ :; 
  5440.     case 44 /* Current */ :; 
  5441.     case 56 /* false */ :; 
  5442.     case 74 /* 'old' */ :; 
  5443.     case 83 /* Result */ :; 
  5444.     case 88 /* 'strip' */ :; 
  5445.     case 90 /* true */ :; 
  5446.     case 105 /* not */ :; 
  5447.     case 106 /* Id */ :; 
  5448.       xxUnion.xxLocalRecoverySet = 0; yyBoolean_expression (& Boolean_expression1, & xxUnion); /*  */
  5449. /* line 577 "eiffel_mey.ell" */
  5450.  comment_possible = OFF; Unlabeled_assertion_clause0->Tree = Boolean_expression1.Tree;    
  5451.       goto xx23;
  5452.     case 107 /* Comment */ :; 
  5453.       Comment1 =       EiffelScan_Attribute;
  5454.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5455. /* line 578 "eiffel_mey.ell" */
  5456.  Unlabeled_assertion_clause0->Tree = mComment(Comment1.StringRef);            
  5457.       goto xx23;
  5458.     case 7:;
  5459.     case 8:;
  5460.     case 9:;
  5461.     case 10:;
  5462.     case 11:;
  5463.     case 12:;
  5464.     case 13:;
  5465.     case 14:;
  5466.     case 15:;
  5467.     case 16:;
  5468.     case 18:;
  5469.     case 19:;
  5470.     case 20:;
  5471.     case 21:;
  5472.     case 22:;
  5473.     case 24:;
  5474.     case 25:;
  5475.     case 26:;
  5476.     case 27:;
  5477.     case 28:;
  5478.     case 31:;
  5479.     case 32:;
  5480.     case 33:;
  5481.     case 34:;
  5482.     case 35:;
  5483.     case 36:;
  5484.     case 37:;
  5485.     case 38:;
  5486.     case 39:;
  5487.     case 40:;
  5488.     case 41:;
  5489.     case 42:;
  5490.     case 43:;
  5491.     case 45:;
  5492.     case 46:;
  5493.     case 47:;
  5494.     case 48:;
  5495.     case 49:;
  5496.     case 50:;
  5497.     case 51:;
  5498.     case 52:;
  5499.     case 53:;
  5500.     case 54:;
  5501.     case 55:;
  5502.     case 57:;
  5503.     case 58:;
  5504.     case 59:;
  5505.     case 60:;
  5506.     case 61:;
  5507.     case 62:;
  5508.     case 63:;
  5509.     case 64:;
  5510.     case 65:;
  5511.     case 66:;
  5512.     case 67:;
  5513.     case 68:;
  5514.     case 69:;
  5515.     case 70:;
  5516.     case 71:;
  5517.     case 72:;
  5518.     case 73:;
  5519.     case 75:;
  5520.     case 76:;
  5521.     case 77:;
  5522.     case 78:;
  5523.     case 79:;
  5524.     case 80:;
  5525.     case 81:;
  5526.     case 82:;
  5527.     case 84:;
  5528.     case 85:;
  5529.     case 86:;
  5530.     case 87:;
  5531.     case 89:;
  5532.     case 91:;
  5533.     case 92:;
  5534.     case 93:;
  5535.     case 94:;
  5536.     case 95:;
  5537.     case 96:;
  5538.     case 97:;
  5539.     case 98:;
  5540.     case 99:;
  5541.     case 100:;
  5542.     case 101:;
  5543.     case 102:;
  5544.     case 103:;
  5545.     case 104:;
  5546.     default:
  5547.       if (xxIsRepairMode) {
  5548.         xxUnion.xxLocalRecoverySet = 0; yyBoolean_expression (& Boolean_expression1, & xxUnion); /*  */
  5549. /* line 577 "eiffel_mey.ell" */
  5550.  comment_possible = OFF; Unlabeled_assertion_clause0->Tree = Boolean_expression1.Tree;    
  5551.         goto xx23;
  5552.       }
  5553.       xxExpected (119, 119, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id Comment */
  5554.     }
  5555.   }
  5556.   xx23:;
  5557. }
  5558.  
  5559. static void yyTag
  5560. # if defined __STDC__ | defined __cplusplus
  5561. (ParserMEY_tParsAttribute * Tag0, xxtUnionPtr xxGlobalRecoverySet)
  5562. # else
  5563. (Tag0, xxGlobalRecoverySet)
  5564. ParserMEY_tParsAttribute    * Tag0;
  5565. xxtUnionPtr    xxGlobalRecoverySet;
  5566. # endif
  5567. {
  5568.   ParserMEY_tParsAttribute Identifier1;
  5569.   xxtUnion xxUnion;
  5570.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5571.   xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  5572. /* line 584 "eiffel_mey.ell" */
  5573.  Tag0->Tree = Identifier1.Tree;                            
  5574. }
  5575.  
  5576. static void yyOld
  5577. # if defined __STDC__ | defined __cplusplus
  5578. (ParserMEY_tParsAttribute * Old0, xxtUnionPtr xxGlobalRecoverySet)
  5579. # else
  5580. (Old0, xxGlobalRecoverySet)
  5581. ParserMEY_tParsAttribute    * Old0;
  5582. xxtUnionPtr    xxGlobalRecoverySet;
  5583. # endif
  5584. {
  5585.   ParserMEY_tParsAttribute Expression1;
  5586.   xxtUnion xxUnion;
  5587.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5588.   if (xxToken != 74 /* 'old' */)
  5589.     xxRecoveryLiteral (74, 128, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  5590.   else {
  5591.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5592.   }
  5593.   xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  5594. /* line 589 "eiffel_mey.ell" */
  5595.  Old0->Tree = mOld(Expression1.Tree);                            
  5596. }
  5597.  
  5598. static void yyCheck
  5599. # if defined __STDC__ | defined __cplusplus
  5600. (ParserMEY_tParsAttribute * Check0, xxtUnionPtr xxGlobalRecoverySet)
  5601. # else
  5602. (Check0, xxGlobalRecoverySet)
  5603. ParserMEY_tParsAttribute    * Check0;
  5604. xxtUnionPtr    xxGlobalRecoverySet;
  5605. # endif
  5606. {
  5607.   ParserMEY_tParsAttribute Assertion1;
  5608.   xxtUnion xxUnion;
  5609.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5610.   if (xxToken != 41 /* 'check' */)
  5611.     xxRecoveryLiteral (41, 129, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus 'check' Current 'end' false 'old' Result 'strip' true not Id Comment */
  5612.   else {
  5613.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5614.   }
  5615.   xxUnion.xxLocalRecoverySet = 10; yyAssertion (& Assertion1, & xxUnion); /*  'end' */
  5616. /* line 594 "eiffel_mey.ell" */
  5617.  Check0->Tree = Assertion1.Tree;                            
  5618.   if (xxToken != 51 /* 'end' */)
  5619.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  5620.   else {
  5621.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5622.   }
  5623. }
  5624.  
  5625. static void yyVariant
  5626. # if defined __STDC__ | defined __cplusplus
  5627. (ParserMEY_tParsAttribute * Variant0, xxtUnionPtr xxGlobalRecoverySet)
  5628. # else
  5629. (Variant0, xxGlobalRecoverySet)
  5630. ParserMEY_tParsAttribute    * Variant0;
  5631. xxtUnionPtr    xxGlobalRecoverySet;
  5632. # endif
  5633. {
  5634.   ParserMEY_tParsAttribute Actuals1;
  5635.   ParserMEY_tParsAttribute Call_chain1;
  5636.   ParserMEY_tParsAttribute Expression1;
  5637.   ParserMEY_tParsAttribute Tag1;
  5638.   ParserMEY_tParsAttribute Expr_tail1;
  5639.   xxtUnion xxUnion;
  5640.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5641.   for (;;) {
  5642.     switch (xxToken) {
  5643.     case 94 /* 'variant' */ :; 
  5644.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5645.       xxUnion.xxLocalRecoverySet = 121; yyTag (& Tag1, & xxUnion); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5646.       for (;;) {
  5647.         switch (xxToken) {
  5648.         case 9 /* ':' */ :; 
  5649.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5650.           xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  5651. /* line 605 "eiffel_mey.ell" */
  5652.  Variant0->Tree = mAssertion_clause1(Tag1.Tree, Expression1.Tree);             
  5653.           goto xx25;
  5654.         case 6 /* Free_op */ :; 
  5655.         case 10 /* '.' */ :; 
  5656.         case 13 /* Eq */ :; 
  5657.         case 14 /* Not_eq */ :; 
  5658.         case 17 /* '(' */ :; 
  5659.         case 29 /* plus */ :; 
  5660.         case 30 /* minus */ :; 
  5661.         case 33 /* div */ :; 
  5662.         case 36 /* and */ :; 
  5663.         case 61 /* implies */ :; 
  5664.         case 76 /* or */ :; 
  5665.         case 93 /* 'until' */ :; 
  5666.         case 96 /* xor */ :; 
  5667.         case 97 /* times */ :; 
  5668.         case 98 /* smaller */ :; 
  5669.         case 99 /* greater */ :; 
  5670.         case 100 /* sm_eq */ :; 
  5671.         case 101 /* gr_eq */ :; 
  5672.         case 102 /* idiv */ :; 
  5673.         case 103 /* imod */ :; 
  5674.         case 104 /* power */ :; 
  5675. /* line 606 "eiffel_mey.ell" */
  5676.  Variant0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, mActuals0()), mCall_chain0());    
  5677.           for (;;) {
  5678.             if ((xxToken == 17 /* '(' */)) {
  5679.               xxUnion.xxLocalRecoverySet = 124; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5680. /* line 607 "eiffel_mey.ell" */
  5681.  Variant0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;        
  5682.               break;
  5683.             } else if ((xxVerticalSet [xxToken + 540] & 1 << 6 /*  Free_op '.' Eq Not_eq plus minus div and implies or 'until' xor times smaller greater sm_eq gr_eq idiv imod power */) || xxIsRepairMode) break;
  5684.             xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5685.           }
  5686.           for (;;) {
  5687.             if ((xxToken == 10 /* '.' */)) {
  5688.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5689.               xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5690. /* line 608 "eiffel_mey.ell" */
  5691.  Variant0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;                 
  5692.               break;
  5693.             } else if ((xxVerticalSet [xxToken + 540] & 1 << 7 /*  Free_op Eq Not_eq plus minus div and implies or 'until' xor times smaller greater sm_eq gr_eq idiv imod power */) || xxIsRepairMode) break;
  5694.             xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5695.           }
  5696. /* line 609 "eiffel_mey.ell" */
  5697.  Variant0->Tree = mCall(mExpression0(), Variant0->Tree);                
  5698.           for (;;) {
  5699.             if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5700.               xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5701. /* line 610 "eiffel_mey.ell" */
  5702.  Variant0->Tree = mBin_expr(Variant0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  5703.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  5704.               break;
  5705.             } else if ((xxToken == 93 /* 'until' */) || xxIsRepairMode) break;
  5706.             xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5707.           }
  5708.           goto xx25;
  5709.         case 7:;
  5710.         case 8:;
  5711.         case 11:;
  5712.         case 12:;
  5713.         case 15:;
  5714.         case 16:;
  5715.         case 18:;
  5716.         case 19:;
  5717.         case 20:;
  5718.         case 21:;
  5719.         case 22:;
  5720.         case 23:;
  5721.         case 24:;
  5722.         case 25:;
  5723.         case 26:;
  5724.         case 27:;
  5725.         case 28:;
  5726.         case 31:;
  5727.         case 32:;
  5728.         case 34:;
  5729.         case 35:;
  5730.         case 37:;
  5731.         case 38:;
  5732.         case 39:;
  5733.         case 40:;
  5734.         case 41:;
  5735.         case 42:;
  5736.         case 43:;
  5737.         case 44:;
  5738.         case 45:;
  5739.         case 46:;
  5740.         case 47:;
  5741.         case 48:;
  5742.         case 49:;
  5743.         case 50:;
  5744.         case 51:;
  5745.         case 52:;
  5746.         case 53:;
  5747.         case 54:;
  5748.         case 55:;
  5749.         case 56:;
  5750.         case 57:;
  5751.         case 58:;
  5752.         case 59:;
  5753.         case 60:;
  5754.         case 62:;
  5755.         case 63:;
  5756.         case 64:;
  5757.         case 65:;
  5758.         case 66:;
  5759.         case 67:;
  5760.         case 68:;
  5761.         case 69:;
  5762.         case 70:;
  5763.         case 71:;
  5764.         case 72:;
  5765.         case 73:;
  5766.         case 74:;
  5767.         case 75:;
  5768.         case 77:;
  5769.         case 78:;
  5770.         case 79:;
  5771.         case 80:;
  5772.         case 81:;
  5773.         case 82:;
  5774.         case 83:;
  5775.         case 84:;
  5776.         case 85:;
  5777.         case 86:;
  5778.         case 87:;
  5779.         case 88:;
  5780.         case 89:;
  5781.         case 90:;
  5782.         case 91:;
  5783.         case 92:;
  5784.         case 94:;
  5785.         case 95:;
  5786.         default:
  5787.           if (xxIsRepairMode) {
  5788. /* line 606 "eiffel_mey.ell" */
  5789.  Variant0->Tree = mCall_chain1(mUnqual_call1(Tag1.Tree, mActuals0()), mCall_chain0());    
  5790.             for (;;) {
  5791.               if ((xxToken == 17 /* '(' */)) {
  5792.                 xxUnion.xxLocalRecoverySet = 124; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5793. /* line 607 "eiffel_mey.ell" */
  5794.  Variant0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;        
  5795.                 break;
  5796.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 6 /*  Free_op '.' Eq Not_eq plus minus div and implies or 'until' xor times smaller greater sm_eq gr_eq idiv imod power */) || xxIsRepairMode) break;
  5797.               xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5798.             }
  5799.             for (;;) {
  5800.               if ((xxToken == 10 /* '.' */)) {
  5801.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5802.                 xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5803. /* line 608 "eiffel_mey.ell" */
  5804.  Variant0->Tree->Call_chain1.Call_chain = Call_chain1.Tree;                 
  5805.                 break;
  5806.               } else if ((xxVerticalSet [xxToken + 540] & 1 << 7 /*  Free_op Eq Not_eq plus minus div and implies or 'until' xor times smaller greater sm_eq gr_eq idiv imod power */) || xxIsRepairMode) break;
  5807.               xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5808.             }
  5809. /* line 609 "eiffel_mey.ell" */
  5810.  Variant0->Tree = mCall(mExpression0(), Variant0->Tree);                
  5811.             for (;;) {
  5812.               if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  5813.                 xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  5814. /* line 610 "eiffel_mey.ell" */
  5815.  Variant0->Tree = mBin_expr(Variant0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  5816.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  5817.                 break;
  5818.               } else if ((xxToken == 93 /* 'until' */) || xxIsRepairMode) break;
  5819.               xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5820.             }
  5821.             goto xx25;
  5822.           }
  5823. xxUnexpected (121, xxGlobalRecoverySet); /*  Free_op ':' '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  5824.         }
  5825.       }
  5826.       xx25:;
  5827. /* line 612 "eiffel_mey.ell" */
  5828.  Variant0->Tree = mAssertion_clause1(Tag1.Tree, Variant0->Tree);            
  5829.       goto xx24;
  5830.     case 1 /* Character_constant */ :; 
  5831.     case 2 /* Bit_sequence */ :; 
  5832.     case 3 /* Integer */ :; 
  5833.     case 4 /* Real */ :; 
  5834.     case 5 /* Manifest_string */ :; 
  5835.     case 6 /* Free_op */ :; 
  5836.     case 17 /* '(' */ :; 
  5837.     case 23 /* '<<' */ :; 
  5838.     case 29 /* plus */ :; 
  5839.     case 30 /* minus */ :; 
  5840.     case 44 /* Current */ :; 
  5841.     case 56 /* false */ :; 
  5842.     case 74 /* 'old' */ :; 
  5843.     case 83 /* Result */ :; 
  5844.     case 88 /* 'strip' */ :; 
  5845.     case 90 /* true */ :; 
  5846.     case 105 /* not */ :; 
  5847.     case 106 /* Id */ :; 
  5848.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  5849. /* line 613 "eiffel_mey.ell" */
  5850.  Variant0->Tree = mAssertion_clause1(mManifest_constant0(), Expression1.Tree);             
  5851.       goto xx24;
  5852.     case 7:;
  5853.     case 8:;
  5854.     case 9:;
  5855.     case 10:;
  5856.     case 11:;
  5857.     case 12:;
  5858.     case 13:;
  5859.     case 14:;
  5860.     case 15:;
  5861.     case 16:;
  5862.     case 18:;
  5863.     case 19:;
  5864.     case 20:;
  5865.     case 21:;
  5866.     case 22:;
  5867.     case 24:;
  5868.     case 25:;
  5869.     case 26:;
  5870.     case 27:;
  5871.     case 28:;
  5872.     case 31:;
  5873.     case 32:;
  5874.     case 33:;
  5875.     case 34:;
  5876.     case 35:;
  5877.     case 36:;
  5878.     case 37:;
  5879.     case 38:;
  5880.     case 39:;
  5881.     case 40:;
  5882.     case 41:;
  5883.     case 42:;
  5884.     case 43:;
  5885.     case 45:;
  5886.     case 46:;
  5887.     case 47:;
  5888.     case 48:;
  5889.     case 49:;
  5890.     case 50:;
  5891.     case 51:;
  5892.     case 52:;
  5893.     case 53:;
  5894.     case 54:;
  5895.     case 55:;
  5896.     case 57:;
  5897.     case 58:;
  5898.     case 59:;
  5899.     case 60:;
  5900.     case 61:;
  5901.     case 62:;
  5902.     case 63:;
  5903.     case 64:;
  5904.     case 65:;
  5905.     case 66:;
  5906.     case 67:;
  5907.     case 68:;
  5908.     case 69:;
  5909.     case 70:;
  5910.     case 71:;
  5911.     case 72:;
  5912.     case 73:;
  5913.     case 75:;
  5914.     case 76:;
  5915.     case 77:;
  5916.     case 78:;
  5917.     case 79:;
  5918.     case 80:;
  5919.     case 81:;
  5920.     case 82:;
  5921.     case 84:;
  5922.     case 85:;
  5923.     case 86:;
  5924.     case 87:;
  5925.     case 89:;
  5926.     case 91:;
  5927.     case 92:;
  5928.     case 93:;
  5929.     case 95:;
  5930.     case 96:;
  5931.     case 97:;
  5932.     case 98:;
  5933.     case 99:;
  5934.     case 100:;
  5935.     case 101:;
  5936.     case 102:;
  5937.     case 103:;
  5938.     case 104:;
  5939.     default:
  5940.       if (xxIsRepairMode) {
  5941.         xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  5942. /* line 613 "eiffel_mey.ell" */
  5943.  Variant0->Tree = mAssertion_clause1(mManifest_constant0(), Expression1.Tree);             
  5944.         goto xx24;
  5945.       }
  5946.       xxExpected (132, 132, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'variant' not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'variant' not Id */
  5947.     }
  5948.   }
  5949.   xx24:;
  5950. }
  5951.  
  5952. static void yyRedefine
  5953. # if defined __STDC__ | defined __cplusplus
  5954. (ParserMEY_tParsAttribute * Redefine0, xxtUnionPtr xxGlobalRecoverySet)
  5955. # else
  5956. (Redefine0, xxGlobalRecoverySet)
  5957. ParserMEY_tParsAttribute    * Redefine0;
  5958. xxtUnionPtr    xxGlobalRecoverySet;
  5959. # endif
  5960. {
  5961.   ParserMEY_tParsAttribute Feature_list1;
  5962.   xxtUnion xxUnion;
  5963.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5964.   if (xxToken != 79 /* 'redefine' */)
  5965.     xxRecoveryLiteral (79, 133, xxGlobalRecoverySet); /*  infix prefix 'redefine' Id */
  5966.   else {
  5967.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5968.   }
  5969.   xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  5970. /* line 619 "eiffel_mey.ell" */
  5971.  Redefine0->Tree = ReverseTree(Feature_list1.Tree);                    
  5972. }
  5973.  
  5974. static void yyUndefine
  5975. # if defined __STDC__ | defined __cplusplus
  5976. (ParserMEY_tParsAttribute * Undefine0, xxtUnionPtr xxGlobalRecoverySet)
  5977. # else
  5978. (Undefine0, xxGlobalRecoverySet)
  5979. ParserMEY_tParsAttribute    * Undefine0;
  5980. xxtUnionPtr    xxGlobalRecoverySet;
  5981. # endif
  5982. {
  5983.   ParserMEY_tParsAttribute Feature_list1;
  5984.   xxtUnion xxUnion;
  5985.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  5986.   if (xxToken != 91 /* 'undefine' */)
  5987.     xxRecoveryLiteral (91, 134, xxGlobalRecoverySet); /*  infix prefix 'undefine' Id */
  5988.   else {
  5989.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  5990.   }
  5991.   xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  5992. /* line 623 "eiffel_mey.ell" */
  5993.  Undefine0->Tree = ReverseTree(Feature_list1.Tree);                    
  5994. }
  5995.  
  5996. static void yySelect
  5997. # if defined __STDC__ | defined __cplusplus
  5998. (ParserMEY_tParsAttribute * Select0, xxtUnionPtr xxGlobalRecoverySet)
  5999. # else
  6000. (Select0, xxGlobalRecoverySet)
  6001. ParserMEY_tParsAttribute    * Select0;
  6002. xxtUnionPtr    xxGlobalRecoverySet;
  6003. # endif
  6004. {
  6005.   ParserMEY_tParsAttribute Feature_list1;
  6006.   xxtUnion xxUnion;
  6007.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6008.   if (xxToken != 85 /* 'select' */)
  6009.     xxRecoveryLiteral (85, 135, xxGlobalRecoverySet); /*  infix prefix 'select' Id */
  6010.   else {
  6011.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6012.   }
  6013.   xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  6014. /* line 627 "eiffel_mey.ell" */
  6015.  Select0->Tree = ReverseTree(Feature_list1.Tree);                    
  6016. }
  6017.  
  6018. static void yyType
  6019. # if defined __STDC__ | defined __cplusplus
  6020. (ParserMEY_tParsAttribute * Type0, xxtUnionPtr xxGlobalRecoverySet)
  6021. # else
  6022. (Type0, xxGlobalRecoverySet)
  6023. ParserMEY_tParsAttribute    * Type0;
  6024. xxtUnionPtr    xxGlobalRecoverySet;
  6025. # endif
  6026. {
  6027.     EiffelScan_tScanAttribute BOOLEAN1;
  6028.     EiffelScan_tScanAttribute CHARACTER1;
  6029.     EiffelScan_tScanAttribute DOUBLE1;
  6030.     EiffelScan_tScanAttribute INTEGER1;
  6031.     EiffelScan_tScanAttribute _NONE1;
  6032.     EiffelScan_tScanAttribute REAL1;
  6033.     EiffelScan_tScanAttribute STRING1;
  6034.   ParserMEY_tParsAttribute Class_type1;
  6035.   ParserMEY_tParsAttribute Anchored1;
  6036.   ParserMEY_tParsAttribute Bit_type1;
  6037.   xxtUnion xxUnion;
  6038.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6039.   for (;;) {
  6040.     switch (xxToken) {
  6041.     case 53 /* expanded */ :; 
  6042.     case 106 /* Id */ :; 
  6043.       xxUnion.xxLocalRecoverySet = 0; yyClass_type (& Class_type1, & xxUnion); /*  */
  6044. /* line 634 "eiffel_mey.ell" */
  6045.  Type0->Tree = Class_type1.Tree;                             
  6046.       goto xx26;
  6047.     case 69 /* 'like' */ :; 
  6048.       xxUnion.xxLocalRecoverySet = 0; yyAnchored (& Anchored1, & xxUnion); /*  */
  6049. /* line 635 "eiffel_mey.ell" */
  6050.  Type0->Tree = Anchored1.Tree;                                
  6051.       goto xx26;
  6052.     case 38 /* BIT */ :; 
  6053.       xxUnion.xxLocalRecoverySet = 0; yyBit_type (& Bit_type1, & xxUnion); /*  */
  6054. /* line 636 "eiffel_mey.ell" */
  6055.  Type0->Tree = Bit_type1.Tree;                                
  6056.       goto xx26;
  6057.     case 39 /* BOOLEAN */ :; 
  6058.       BOOLEAN1 =       EiffelScan_Attribute;
  6059.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6060. /* line 637 "eiffel_mey.ell" */
  6061.  Type0->Tree = mSimple_type(m_BOOLEAN(BOOLEAN1.Position));                
  6062.       goto xx26;
  6063.     case 40 /* CHARACTER */ :; 
  6064.       CHARACTER1 =       EiffelScan_Attribute;
  6065.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6066. /* line 638 "eiffel_mey.ell" */
  6067.  Type0->Tree = mSimple_type(m_CHARACTER(CHARACTER1.Position));                
  6068.       goto xx26;
  6069.     case 48 /* DOUBLE */ :; 
  6070.       DOUBLE1 =       EiffelScan_Attribute;
  6071.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6072. /* line 639 "eiffel_mey.ell" */
  6073.  Type0->Tree = mSimple_type(m_DOUBLE(DOUBLE1.Position));                
  6074.       goto xx26;
  6075.     case 66 /* INTEGER */ :; 
  6076.       INTEGER1 =       EiffelScan_Attribute;
  6077.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6078. /* line 640 "eiffel_mey.ell" */
  6079.  Type0->Tree = mSimple_type(m_INTEGER(INTEGER1.Position));                 
  6080.       goto xx26;
  6081.     case 72 /* _NONE */ :; 
  6082.       _NONE1 =       EiffelScan_Attribute;
  6083.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6084. /* line 641 "eiffel_mey.ell" */
  6085.  Type0->Tree = mSimple_type(m_NONE(_NONE1.Position));                     
  6086.       goto xx26;
  6087.     case 78 /* REAL */ :; 
  6088.       REAL1 =       EiffelScan_Attribute;
  6089.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6090. /* line 642 "eiffel_mey.ell" */
  6091.  Type0->Tree = mSimple_type(m_REAL(REAL1.Position));                     
  6092.       goto xx26;
  6093.     case 87 /* STRING */ :; 
  6094.       STRING1 =       EiffelScan_Attribute;
  6095.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6096. /* line 643 "eiffel_mey.ell" */
  6097.  Type0->Tree = mSimple_type(m_STRING(STRING1.Position));                 
  6098.       goto xx26;
  6099.     case 41:;
  6100.     case 42:;
  6101.     case 43:;
  6102.     case 44:;
  6103.     case 45:;
  6104.     case 46:;
  6105.     case 47:;
  6106.     case 49:;
  6107.     case 50:;
  6108.     case 51:;
  6109.     case 52:;
  6110.     case 54:;
  6111.     case 55:;
  6112.     case 56:;
  6113.     case 57:;
  6114.     case 58:;
  6115.     case 59:;
  6116.     case 60:;
  6117.     case 61:;
  6118.     case 62:;
  6119.     case 63:;
  6120.     case 64:;
  6121.     case 65:;
  6122.     case 67:;
  6123.     case 68:;
  6124.     case 70:;
  6125.     case 71:;
  6126.     case 73:;
  6127.     case 74:;
  6128.     case 75:;
  6129.     case 76:;
  6130.     case 77:;
  6131.     case 79:;
  6132.     case 80:;
  6133.     case 81:;
  6134.     case 82:;
  6135.     case 83:;
  6136.     case 84:;
  6137.     case 85:;
  6138.     case 86:;
  6139.     case 88:;
  6140.     case 89:;
  6141.     case 90:;
  6142.     case 91:;
  6143.     case 92:;
  6144.     case 93:;
  6145.     case 94:;
  6146.     case 95:;
  6147.     case 96:;
  6148.     case 97:;
  6149.     case 98:;
  6150.     case 99:;
  6151.     case 100:;
  6152.     case 101:;
  6153.     case 102:;
  6154.     case 103:;
  6155.     case 104:;
  6156.     case 105:;
  6157.     default:
  6158.       if (xxIsRepairMode) {
  6159.         xxUnion.xxLocalRecoverySet = 0; yyClass_type (& Class_type1, & xxUnion); /*  */
  6160. /* line 634 "eiffel_mey.ell" */
  6161.  Type0->Tree = Class_type1.Tree;                             
  6162.         goto xx26;
  6163.       }
  6164.       xxExpected (143, 143, xxGlobalRecoverySet); /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id /  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6165.     }
  6166.   }
  6167.   xx26:;
  6168. }
  6169.  
  6170. static void yyClass_type
  6171. # if defined __STDC__ | defined __cplusplus
  6172. (ParserMEY_tParsAttribute * Class_type0, xxtUnionPtr xxGlobalRecoverySet)
  6173. # else
  6174. (Class_type0, xxGlobalRecoverySet)
  6175. ParserMEY_tParsAttribute    * Class_type0;
  6176. xxtUnionPtr    xxGlobalRecoverySet;
  6177. # endif
  6178. {
  6179.     EiffelScan_tScanAttribute expanded1;
  6180.   ParserMEY_tParsAttribute Identifier1;
  6181.   ParserMEY_tParsAttribute Actual_generics1;
  6182.   xxtUnion xxUnion;
  6183.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6184.   for (;;) {
  6185.     switch (xxToken) {
  6186.     case 106 /* Id */ :; 
  6187.       xxUnion.xxLocalRecoverySet = 144; yyIdentifier (& Identifier1, & xxUnion); /*  '[' */
  6188. /* line 648 "eiffel_mey.ell" */
  6189.  Class_type0->Tree = mClass_type(Identifier1.Tree, mActual_generics0());         
  6190.       for (;;) {
  6191.         if ((xxToken == 19 /* '[' */)) {
  6192.           xxUnion.xxLocalRecoverySet = 0; yyActual_generics (& Actual_generics1, & xxUnion); /*  */
  6193. /* line 649 "eiffel_mey.ell" */
  6194.  Class_type0->Tree->Class_type.Actual_generics = Actual_generics1.Tree;         
  6195.           break;
  6196.         } else if ((xxVerticalSet [xxToken + 648] & 1 << 0 /*  ';' ',' '!' ')' ']' 'creation' deferred do 'end' 'export' 'external' 'feature' 'frozen' infix 'invariant' 'is' once prefix 'redefine' 'rename' 'select' 'undefine' Id */) || xxIsRepairMode) break;
  6197.         xxExpected (144, 144, xxGlobalRecoverySet); /*  '[' /  '[' */
  6198.       }
  6199.       goto xx27;
  6200.     case 53 /* expanded */ :; 
  6201.       expanded1 =       EiffelScan_Attribute;
  6202.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6203.       xxUnion.xxLocalRecoverySet = 144; yyIdentifier (& Identifier1, & xxUnion); /*  '[' */
  6204. /* line 650 "eiffel_mey.ell" */
  6205.  Class_type0->Tree = mClass_type_expanded(Identifier1.Tree, mActual_generics0());    
  6206.       for (;;) {
  6207.         if ((xxToken == 19 /* '[' */)) {
  6208.           xxUnion.xxLocalRecoverySet = 0; yyActual_generics (& Actual_generics1, & xxUnion); /*  */
  6209. /* line 651 "eiffel_mey.ell" */
  6210.  Class_type0->Tree->Class_type_expanded.Actual_generics = Actual_generics1.Tree;     
  6211.           break;
  6212.         } else if ((xxVerticalSet [xxToken + 648] & 1 << 0 /*  ';' ',' '!' ')' ']' 'creation' deferred do 'end' 'export' 'external' 'feature' 'frozen' infix 'invariant' 'is' once prefix 'redefine' 'rename' 'select' 'undefine' Id */) || xxIsRepairMode) break;
  6213.         xxExpected (144, 144, xxGlobalRecoverySet); /*  '[' /  '[' */
  6214.       }
  6215.       goto xx27;
  6216.     case 54:;
  6217.     case 55:;
  6218.     case 56:;
  6219.     case 57:;
  6220.     case 58:;
  6221.     case 59:;
  6222.     case 60:;
  6223.     case 61:;
  6224.     case 62:;
  6225.     case 63:;
  6226.     case 64:;
  6227.     case 65:;
  6228.     case 66:;
  6229.     case 67:;
  6230.     case 68:;
  6231.     case 69:;
  6232.     case 70:;
  6233.     case 71:;
  6234.     case 72:;
  6235.     case 73:;
  6236.     case 74:;
  6237.     case 75:;
  6238.     case 76:;
  6239.     case 77:;
  6240.     case 78:;
  6241.     case 79:;
  6242.     case 80:;
  6243.     case 81:;
  6244.     case 82:;
  6245.     case 83:;
  6246.     case 84:;
  6247.     case 85:;
  6248.     case 86:;
  6249.     case 87:;
  6250.     case 88:;
  6251.     case 89:;
  6252.     case 90:;
  6253.     case 91:;
  6254.     case 92:;
  6255.     case 93:;
  6256.     case 94:;
  6257.     case 95:;
  6258.     case 96:;
  6259.     case 97:;
  6260.     case 98:;
  6261.     case 99:;
  6262.     case 100:;
  6263.     case 101:;
  6264.     case 102:;
  6265.     case 103:;
  6266.     case 104:;
  6267.     case 105:;
  6268.     default:
  6269.       if (xxIsRepairMode) {
  6270.         xxUnion.xxLocalRecoverySet = 144; yyIdentifier (& Identifier1, & xxUnion); /*  '[' */
  6271. /* line 648 "eiffel_mey.ell" */
  6272.  Class_type0->Tree = mClass_type(Identifier1.Tree, mActual_generics0());         
  6273.         for (;;) {
  6274.           if ((xxToken == 19 /* '[' */)) {
  6275.             xxUnion.xxLocalRecoverySet = 0; yyActual_generics (& Actual_generics1, & xxUnion); /*  */
  6276. /* line 649 "eiffel_mey.ell" */
  6277.  Class_type0->Tree->Class_type.Actual_generics = Actual_generics1.Tree;         
  6278.             break;
  6279.           } else if ((xxVerticalSet [xxToken + 648] & 1 << 0 /*  ';' ',' '!' ')' ']' 'creation' deferred do 'end' 'export' 'external' 'feature' 'frozen' infix 'invariant' 'is' once prefix 'redefine' 'rename' 'select' 'undefine' Id */) || xxIsRepairMode) break;
  6280.           xxExpected (144, 144, xxGlobalRecoverySet); /*  '[' /  '[' */
  6281.         }
  6282.         goto xx27;
  6283.       }
  6284.       xxExpected (63, 63, xxGlobalRecoverySet); /*  expanded Id /  expanded Id */
  6285.     }
  6286.   }
  6287.   xx27:;
  6288. }
  6289.  
  6290. static void yyActual_generics
  6291. # if defined __STDC__ | defined __cplusplus
  6292. (ParserMEY_tParsAttribute * Actual_generics0, xxtUnionPtr xxGlobalRecoverySet)
  6293. # else
  6294. (Actual_generics0, xxGlobalRecoverySet)
  6295. ParserMEY_tParsAttribute    * Actual_generics0;
  6296. xxtUnionPtr    xxGlobalRecoverySet;
  6297. # endif
  6298. {
  6299.   ParserMEY_tParsAttribute Type_list1;
  6300.   xxtUnion xxUnion;
  6301.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6302.   if (xxToken != 19 /* '[' */)
  6303.     xxRecoveryLiteral (19, 146, xxGlobalRecoverySet); /*  '[' ']' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6304.   else {
  6305.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6306.   }
  6307.   xxUnion.xxLocalRecoverySet = 147; yyType_list (& Type_list1, & xxUnion); /*  ']' */
  6308.   if (xxToken != 20 /* ']' */)
  6309.     xxRecoveryLiteral (20, 147, xxGlobalRecoverySet); /*  ']' */
  6310.   else {
  6311.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6312.   }
  6313. /* line 655 "eiffel_mey.ell" */
  6314.  Actual_generics0->Tree = mActual_generics1(Type_list1.Tree);                 
  6315. }
  6316.  
  6317. static void yyType_list
  6318. # if defined __STDC__ | defined __cplusplus
  6319. (ParserMEY_tParsAttribute * Type_list0, xxtUnionPtr xxGlobalRecoverySet)
  6320. # else
  6321. (Type_list0, xxGlobalRecoverySet)
  6322. ParserMEY_tParsAttribute    * Type_list0;
  6323. xxtUnionPtr    xxGlobalRecoverySet;
  6324. # endif
  6325. {
  6326.   ParserMEY_tParsAttribute Type1;
  6327.   xxtUnion xxUnion;
  6328.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6329. /* line 658 "eiffel_mey.ell" */
  6330.  Type_list0->Tree = mType_list0();                             
  6331.   for (;;) {
  6332.     if ((xxVerticalSet [xxToken + 648] & 1 << 1 /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */)) {
  6333.       for (;;) {
  6334.         xxUnion.xxLocalRecoverySet = 16; yyType (& Type1, & xxUnion); /*  ',' */
  6335. /* line 659 "eiffel_mey.ell" */
  6336.  Type_list0->Tree = mType_list1(Type1.Tree, Type_list0->Tree);                
  6337.         if (! ((xxToken == 8 /* ',' */))) {
  6338.           if ((xxToken == 20 /* ']' */)) break;
  6339.           xxExpected (16, 148, xxGlobalRecoverySet); /*  ',' /  ',' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6340.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 648] & 1 << 1 /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */))) break;
  6341.         }
  6342.         if (xxToken != 8 /* ',' */)
  6343.           xxRecoveryLiteral (8, 148, xxGlobalRecoverySet); /*  ',' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6344.         else {
  6345.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6346.         }
  6347.       }
  6348.       break;
  6349.     } else if ((xxToken == 20 /* ']' */) || xxIsRepairMode) break;
  6350.     xxExpected (143, 143, xxGlobalRecoverySet); /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id /  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */
  6351.   }
  6352. /* line 660 "eiffel_mey.ell" */
  6353.  Type_list0->Tree = ReverseTree(Type_list0->Tree);                    
  6354. }
  6355.  
  6356. static void yyBit_type
  6357. # if defined __STDC__ | defined __cplusplus
  6358. (ParserMEY_tParsAttribute * Bit_type0, xxtUnionPtr xxGlobalRecoverySet)
  6359. # else
  6360. (Bit_type0, xxGlobalRecoverySet)
  6361. ParserMEY_tParsAttribute    * Bit_type0;
  6362. xxtUnionPtr    xxGlobalRecoverySet;
  6363. # endif
  6364. {
  6365.     EiffelScan_tScanAttribute BIT1;
  6366.   ParserMEY_tParsAttribute Constant1;
  6367.   xxtUnion xxUnion;
  6368.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6369.   if (xxToken != 38 /* BIT */)
  6370.     xxRecoveryTerminal (38, 149, xxGlobalRecoverySet, & BIT1); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus BIT Current false Result true Id */
  6371.   else {
  6372.     BIT1 =   EiffelScan_Attribute;
  6373.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6374.   }
  6375.   xxUnion.xxLocalRecoverySet = 0; yyConstant (& Constant1, & xxUnion); /*  */
  6376. /* line 664 "eiffel_mey.ell" */
  6377.  Bit_type0->Tree = mBit_type(Constant1.Tree);                        
  6378. }
  6379.  
  6380. static void yyAnchored
  6381. # if defined __STDC__ | defined __cplusplus
  6382. (ParserMEY_tParsAttribute * Anchored0, xxtUnionPtr xxGlobalRecoverySet)
  6383. # else
  6384. (Anchored0, xxGlobalRecoverySet)
  6385. ParserMEY_tParsAttribute    * Anchored0;
  6386. xxtUnionPtr    xxGlobalRecoverySet;
  6387. # endif
  6388. {
  6389.   ParserMEY_tParsAttribute Anchor1;
  6390.   xxtUnion xxUnion;
  6391.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6392.   if (xxToken != 69 /* 'like' */)
  6393.     xxRecoveryLiteral (69, 150, xxGlobalRecoverySet); /*  Current 'like' Id */
  6394.   else {
  6395.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6396.   }
  6397.   xxUnion.xxLocalRecoverySet = 0; yyAnchor (& Anchor1, & xxUnion); /*  */
  6398. /* line 668 "eiffel_mey.ell" */
  6399.  Anchored0->Tree = mAnchored(Anchor1.Tree);                        
  6400. }
  6401.  
  6402. static void yyAnchor
  6403. # if defined __STDC__ | defined __cplusplus
  6404. (ParserMEY_tParsAttribute * Anchor0, xxtUnionPtr xxGlobalRecoverySet)
  6405. # else
  6406. (Anchor0, xxGlobalRecoverySet)
  6407. ParserMEY_tParsAttribute    * Anchor0;
  6408. xxtUnionPtr    xxGlobalRecoverySet;
  6409. # endif
  6410. {
  6411.     EiffelScan_tScanAttribute Current1;
  6412.   ParserMEY_tParsAttribute Identifier1;
  6413.   xxtUnion xxUnion;
  6414.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6415.   for (;;) {
  6416.     switch (xxToken) {
  6417.     case 106 /* Id */ :; 
  6418.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  6419. /* line 672 "eiffel_mey.ell" */
  6420.  Anchor0->Tree = Identifier1.Tree;                            
  6421.       goto xx28;
  6422.     case 44 /* Current */ :; 
  6423.       Current1 =       EiffelScan_Attribute;
  6424.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6425. /* line 673 "eiffel_mey.ell" */
  6426.  Anchor0->Tree = mCurrent(Current1.Position);                        
  6427.       goto xx28;
  6428.     case 45:;
  6429.     case 46:;
  6430.     case 47:;
  6431.     case 48:;
  6432.     case 49:;
  6433.     case 50:;
  6434.     case 51:;
  6435.     case 52:;
  6436.     case 53:;
  6437.     case 54:;
  6438.     case 55:;
  6439.     case 56:;
  6440.     case 57:;
  6441.     case 58:;
  6442.     case 59:;
  6443.     case 60:;
  6444.     case 61:;
  6445.     case 62:;
  6446.     case 63:;
  6447.     case 64:;
  6448.     case 65:;
  6449.     case 66:;
  6450.     case 67:;
  6451.     case 68:;
  6452.     case 69:;
  6453.     case 70:;
  6454.     case 71:;
  6455.     case 72:;
  6456.     case 73:;
  6457.     case 74:;
  6458.     case 75:;
  6459.     case 76:;
  6460.     case 77:;
  6461.     case 78:;
  6462.     case 79:;
  6463.     case 80:;
  6464.     case 81:;
  6465.     case 82:;
  6466.     case 83:;
  6467.     case 84:;
  6468.     case 85:;
  6469.     case 86:;
  6470.     case 87:;
  6471.     case 88:;
  6472.     case 89:;
  6473.     case 90:;
  6474.     case 91:;
  6475.     case 92:;
  6476.     case 93:;
  6477.     case 94:;
  6478.     case 95:;
  6479.     case 96:;
  6480.     case 97:;
  6481.     case 98:;
  6482.     case 99:;
  6483.     case 100:;
  6484.     case 101:;
  6485.     case 102:;
  6486.     case 103:;
  6487.     case 104:;
  6488.     case 105:;
  6489.     default:
  6490.       if (xxIsRepairMode) {
  6491.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  6492. /* line 672 "eiffel_mey.ell" */
  6493.  Anchor0->Tree = Identifier1.Tree;                            
  6494.         goto xx28;
  6495.       }
  6496.       xxExpected (152, 152, xxGlobalRecoverySet); /*  Current Id /  Current Id */
  6497.     }
  6498.   }
  6499.   xx28:;
  6500. }
  6501.  
  6502. static void yyFormal_generics
  6503. # if defined __STDC__ | defined __cplusplus
  6504. (ParserMEY_tParsAttribute * Formal_generics0, xxtUnionPtr xxGlobalRecoverySet)
  6505. # else
  6506. (Formal_generics0, xxGlobalRecoverySet)
  6507. ParserMEY_tParsAttribute    * Formal_generics0;
  6508. xxtUnionPtr    xxGlobalRecoverySet;
  6509. # endif
  6510. {
  6511.   ParserMEY_tParsAttribute Formal_generic_list1;
  6512.   xxtUnion xxUnion;
  6513.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6514.   if (xxToken != 19 /* '[' */)
  6515.     xxRecoveryLiteral (19, 153, xxGlobalRecoverySet); /*  '[' ']' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6516.   else {
  6517.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6518.   }
  6519.   xxUnion.xxLocalRecoverySet = 147; yyFormal_generic_list (& Formal_generic_list1, & xxUnion); /*  ']' */
  6520.   if (xxToken != 20 /* ']' */)
  6521.     xxRecoveryLiteral (20, 147, xxGlobalRecoverySet); /*  ']' */
  6522.   else {
  6523.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6524.   }
  6525. /* line 679 "eiffel_mey.ell" */
  6526.  Formal_generics0->Tree = ReverseTree(Formal_generic_list1.Tree);         
  6527. }
  6528.  
  6529. static void yyFormal_generic_list
  6530. # if defined __STDC__ | defined __cplusplus
  6531. (ParserMEY_tParsAttribute * Formal_generic_list0, xxtUnionPtr xxGlobalRecoverySet)
  6532. # else
  6533. (Formal_generic_list0, xxGlobalRecoverySet)
  6534. ParserMEY_tParsAttribute    * Formal_generic_list0;
  6535. xxtUnionPtr    xxGlobalRecoverySet;
  6536. # endif
  6537. {
  6538.   ParserMEY_tParsAttribute Formal_generic1;
  6539.   xxtUnion xxUnion;
  6540.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6541. /* line 681 "eiffel_mey.ell" */
  6542.  Formal_generic_list0->Tree = mFormal_generics0();                     
  6543.   for (;;) {
  6544.     if ((xxVerticalSet [xxToken + 324] & 1 << 3 /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */)) {
  6545.       for (;;) {
  6546.         xxUnion.xxLocalRecoverySet = 16; yyFormal_generic (& Formal_generic1, & xxUnion); /*  ',' */
  6547. /* line 682 "eiffel_mey.ell" */
  6548.  Formal_generic_list0->Tree = mFormal_generics1(Formal_generic1.Tree, 
  6549.                                         Formal_generic_list0->Tree);     
  6550.         if (! ((xxToken == 8 /* ',' */))) {
  6551.           if ((xxToken == 20 /* ']' */)) break;
  6552.           xxExpected (16, 76, xxGlobalRecoverySet); /*  ',' /  ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6553.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 324] & 1 << 3 /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */))) break;
  6554.         }
  6555.         if (xxToken != 8 /* ',' */)
  6556.           xxRecoveryLiteral (8, 76, xxGlobalRecoverySet); /*  ',' BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6557.         else {
  6558.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6559.         }
  6560.       }
  6561.       break;
  6562.     } else if ((xxToken == 20 /* ']' */) || xxIsRepairMode) break;
  6563.     xxExpected (75, 75, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id /  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6564.   }
  6565. }
  6566.  
  6567. static void yyFormal_generic
  6568. # if defined __STDC__ | defined __cplusplus
  6569. (ParserMEY_tParsAttribute * Formal_generic0, xxtUnionPtr xxGlobalRecoverySet)
  6570. # else
  6571. (Formal_generic0, xxGlobalRecoverySet)
  6572. ParserMEY_tParsAttribute    * Formal_generic0;
  6573. xxtUnionPtr    xxGlobalRecoverySet;
  6574. # endif
  6575. {
  6576.   ParserMEY_tParsAttribute Formal_generic_name1;
  6577.   ParserMEY_tParsAttribute Constraint1;
  6578.   xxtUnion xxUnion;
  6579.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6580.   xxUnion.xxLocalRecoverySet = 154; yyFormal_generic_name (& Formal_generic_name1, & xxUnion); /*  '->' */
  6581. /* line 687 "eiffel_mey.ell" */
  6582.  Formal_generic0->Tree = mFormal_generic(Formal_generic_name1.Tree, mConstraint0());     
  6583.   for (;;) {
  6584.     if ((xxToken == 15 /* '->' */)) {
  6585.       xxUnion.xxLocalRecoverySet = 0; yyConstraint (& Constraint1, & xxUnion); /*  */
  6586. /* line 688 "eiffel_mey.ell" */
  6587.  Formal_generic0->Tree->Formal_generic.Constraint = Constraint1.Tree;             
  6588.       break;
  6589.     } else if ((xxVerticalSet [xxToken + 648] & 1 << 2 /*  ',' ']' */) || xxIsRepairMode) break;
  6590.     xxExpected (154, 154, xxGlobalRecoverySet); /*  '->' /  '->' */
  6591.   }
  6592. }
  6593.  
  6594. static void yyFormal_generic_name
  6595. # if defined __STDC__ | defined __cplusplus
  6596. (ParserMEY_tParsAttribute * Formal_generic_name0, xxtUnionPtr xxGlobalRecoverySet)
  6597. # else
  6598. (Formal_generic_name0, xxGlobalRecoverySet)
  6599. ParserMEY_tParsAttribute    * Formal_generic_name0;
  6600. xxtUnionPtr    xxGlobalRecoverySet;
  6601. # endif
  6602. {
  6603.     EiffelScan_tScanAttribute BOOLEAN1;
  6604.     EiffelScan_tScanAttribute CHARACTER1;
  6605.     EiffelScan_tScanAttribute DOUBLE1;
  6606.     EiffelScan_tScanAttribute INTEGER1;
  6607.     EiffelScan_tScanAttribute _NONE1;
  6608.     EiffelScan_tScanAttribute REAL1;
  6609.     EiffelScan_tScanAttribute STRING1;
  6610.   ParserMEY_tParsAttribute Identifier1;
  6611.   xxtUnion xxUnion;
  6612.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6613.   for (;;) {
  6614.     switch (xxToken) {
  6615.     case 106 /* Id */ :; 
  6616.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  6617. /* line 691 "eiffel_mey.ell" */
  6618.  Formal_generic_name0->Tree = Identifier1.Tree;                     
  6619.       goto xx29;
  6620.     case 39 /* BOOLEAN */ :; 
  6621.       BOOLEAN1 =       EiffelScan_Attribute;
  6622.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6623. /* line 692 "eiffel_mey.ell" */
  6624.   Formal_generic_name0->Tree = m_BOOLEAN(BOOLEAN1.Position);                
  6625.       goto xx29;
  6626.     case 40 /* CHARACTER */ :; 
  6627.       CHARACTER1 =       EiffelScan_Attribute;
  6628.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6629. /* line 693 "eiffel_mey.ell" */
  6630.   Formal_generic_name0->Tree = m_CHARACTER(CHARACTER1.Position);            
  6631.       goto xx29;
  6632.     case 48 /* DOUBLE */ :; 
  6633.       DOUBLE1 =       EiffelScan_Attribute;
  6634.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6635. /* line 694 "eiffel_mey.ell" */
  6636.   Formal_generic_name0->Tree = m_DOUBLE(DOUBLE1.Position);                
  6637.       goto xx29;
  6638.     case 66 /* INTEGER */ :; 
  6639.       INTEGER1 =       EiffelScan_Attribute;
  6640.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6641. /* line 695 "eiffel_mey.ell" */
  6642.   Formal_generic_name0->Tree = m_INTEGER(INTEGER1.Position);                 
  6643.       goto xx29;
  6644.     case 72 /* _NONE */ :; 
  6645.       _NONE1 =       EiffelScan_Attribute;
  6646.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6647. /* line 696 "eiffel_mey.ell" */
  6648.   Formal_generic_name0->Tree = m_NONE(_NONE1.Position);                 
  6649.       goto xx29;
  6650.     case 78 /* REAL */ :; 
  6651.       REAL1 =       EiffelScan_Attribute;
  6652.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6653. /* line 697 "eiffel_mey.ell" */
  6654.   Formal_generic_name0->Tree = m_REAL(REAL1.Position);                 
  6655.       goto xx29;
  6656.     case 87 /* STRING */ :; 
  6657.       STRING1 =       EiffelScan_Attribute;
  6658.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6659. /* line 698 "eiffel_mey.ell" */
  6660.   Formal_generic_name0->Tree = m_STRING(STRING1.Position);                 
  6661.       goto xx29;
  6662.     case 41:;
  6663.     case 42:;
  6664.     case 43:;
  6665.     case 44:;
  6666.     case 45:;
  6667.     case 46:;
  6668.     case 47:;
  6669.     case 49:;
  6670.     case 50:;
  6671.     case 51:;
  6672.     case 52:;
  6673.     case 53:;
  6674.     case 54:;
  6675.     case 55:;
  6676.     case 56:;
  6677.     case 57:;
  6678.     case 58:;
  6679.     case 59:;
  6680.     case 60:;
  6681.     case 61:;
  6682.     case 62:;
  6683.     case 63:;
  6684.     case 64:;
  6685.     case 65:;
  6686.     case 67:;
  6687.     case 68:;
  6688.     case 69:;
  6689.     case 70:;
  6690.     case 71:;
  6691.     case 73:;
  6692.     case 74:;
  6693.     case 75:;
  6694.     case 76:;
  6695.     case 77:;
  6696.     case 79:;
  6697.     case 80:;
  6698.     case 81:;
  6699.     case 82:;
  6700.     case 83:;
  6701.     case 84:;
  6702.     case 85:;
  6703.     case 86:;
  6704.     case 88:;
  6705.     case 89:;
  6706.     case 90:;
  6707.     case 91:;
  6708.     case 92:;
  6709.     case 93:;
  6710.     case 94:;
  6711.     case 95:;
  6712.     case 96:;
  6713.     case 97:;
  6714.     case 98:;
  6715.     case 99:;
  6716.     case 100:;
  6717.     case 101:;
  6718.     case 102:;
  6719.     case 103:;
  6720.     case 104:;
  6721.     case 105:;
  6722.     default:
  6723.       if (xxIsRepairMode) {
  6724.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  6725. /* line 691 "eiffel_mey.ell" */
  6726.  Formal_generic_name0->Tree = Identifier1.Tree;                     
  6727.         goto xx29;
  6728.       }
  6729.       xxExpected (75, 75, xxGlobalRecoverySet); /*  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id /  BOOLEAN CHARACTER DOUBLE INTEGER _NONE REAL STRING Id */
  6730.     }
  6731.   }
  6732.   xx29:;
  6733. }
  6734.  
  6735. static void yyConstraint
  6736. # if defined __STDC__ | defined __cplusplus
  6737. (ParserMEY_tParsAttribute * Constraint0, xxtUnionPtr xxGlobalRecoverySet)
  6738. # else
  6739. (Constraint0, xxGlobalRecoverySet)
  6740. ParserMEY_tParsAttribute    * Constraint0;
  6741. xxtUnionPtr    xxGlobalRecoverySet;
  6742. # endif
  6743. {
  6744.   ParserMEY_tParsAttribute Class_type1;
  6745.   xxtUnion xxUnion;
  6746.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6747.   if (xxToken != 15 /* '->' */)
  6748.     xxRecoveryLiteral (15, 155, xxGlobalRecoverySet); /*  '->' expanded Id */
  6749.   else {
  6750.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6751.   }
  6752.   xxUnion.xxLocalRecoverySet = 0; yyClass_type (& Class_type1, & xxUnion); /*  */
  6753. /* line 701 "eiffel_mey.ell" */
  6754.  Constraint0->Tree = mConstraint1(Class_type1.Tree);                     
  6755. }
  6756.  
  6757. static void yyCompound
  6758. # if defined __STDC__ | defined __cplusplus
  6759. (ParserMEY_tParsAttribute * Compound0, xxtUnionPtr xxGlobalRecoverySet)
  6760. # else
  6761. (Compound0, xxGlobalRecoverySet)
  6762. ParserMEY_tParsAttribute    * Compound0;
  6763. xxtUnionPtr    xxGlobalRecoverySet;
  6764. # endif
  6765. {
  6766.   ParserMEY_tParsAttribute Instruction1;
  6767.   xxtUnion xxUnion;
  6768.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6769. /* line 705 "eiffel_mey.ell" */
  6770.  Compound0->Tree = mCompound0();                            
  6771.   for (;;) {
  6772.     if ((xxVerticalSet [xxToken + 648] & 1 << 3 /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */)) {
  6773.       xxUnion.xxLocalRecoverySet = 0; yyInstruction (& Instruction1, & xxUnion); /*  */
  6774. /* line 706 "eiffel_mey.ell" */
  6775.  if (Instruction1.Tree != NoTree) 
  6776.                     Compound0->Tree = mCompound1(Instruction1.Tree, Compound0->Tree);    
  6777.     } else if ((xxVerticalSet [xxToken + 648] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else 'elseif' 'end' 'ensure' false 'invariant' 'old' 'rescue' Result 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  6778.     else
  6779.       xxExpected (105, 105, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  6780.   }
  6781. }
  6782.  
  6783. static void yyConditional
  6784. # if defined __STDC__ | defined __cplusplus
  6785. (ParserMEY_tParsAttribute * Conditional0, xxtUnionPtr xxGlobalRecoverySet)
  6786. # else
  6787. (Conditional0, xxGlobalRecoverySet)
  6788. ParserMEY_tParsAttribute    * Conditional0;
  6789. xxtUnionPtr    xxGlobalRecoverySet;
  6790. # endif
  6791. {
  6792.   ParserMEY_tParsAttribute Then_part_list1;
  6793.   ParserMEY_tParsAttribute Else_part1;
  6794.   xxtUnion xxUnion;
  6795.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6796.   if (xxToken != 60 /* 'if' */)
  6797.     xxRecoveryLiteral (60, 156, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else 'end' false 'if' 'old' Result 'strip' true not Id */
  6798.   else {
  6799.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6800.   }
  6801.   xxUnion.xxLocalRecoverySet = 157; yyThen_part_list (& Then_part_list1, & xxUnion); /*  else 'end' */
  6802. /* line 712 "eiffel_mey.ell" */
  6803.  Conditional0->Tree = mConditional(ReverseTree(Then_part_list1.Tree), mCompound0());    
  6804.   for (;;) {
  6805.     if ((xxToken == 49 /* else */)) {
  6806.       xxUnion.xxLocalRecoverySet = 10; yyElse_part (& Else_part1, & xxUnion); /*  'end' */
  6807. /* line 713 "eiffel_mey.ell" */
  6808.  Conditional0->Tree->Conditional.Else_part = Else_part1.Tree;                
  6809.       break;
  6810.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  6811.     xxExpected (157, 157, xxGlobalRecoverySet); /*  else 'end' /  else 'end' */
  6812.   }
  6813.   if (xxToken != 51 /* 'end' */)
  6814.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  6815.   else {
  6816.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6817.   }
  6818. }
  6819.  
  6820. static void yyThen_part_list
  6821. # if defined __STDC__ | defined __cplusplus
  6822. (ParserMEY_tParsAttribute * Then_part_list0, xxtUnionPtr xxGlobalRecoverySet)
  6823. # else
  6824. (Then_part_list0, xxGlobalRecoverySet)
  6825. ParserMEY_tParsAttribute    * Then_part_list0;
  6826. xxtUnionPtr    xxGlobalRecoverySet;
  6827. # endif
  6828. {
  6829.   ParserMEY_tParsAttribute Then_part1;
  6830.   xxtUnion xxUnion;
  6831.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6832. /* line 716 "eiffel_mey.ell" */
  6833.  Then_part_list0->Tree = mThen_part_list0();                        
  6834.   for (;;) {
  6835.     xxUnion.xxLocalRecoverySet = 158; yyThen_part (& Then_part1, & xxUnion); /*  'elseif' */
  6836. /* line 717 "eiffel_mey.ell" */
  6837.  Then_part_list0->Tree = mThen_part_list1(Then_part1.Tree, Then_part_list0->Tree);    
  6838.     if (! ((xxToken == 50 /* 'elseif' */))) {
  6839.       if ((xxVerticalSet [xxToken + 648] & 1 << 6 /*  else 'end' */)) break;
  6840.       xxExpected (158, 159, xxGlobalRecoverySet); /*  'elseif' /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'elseif' false 'old' Result 'strip' true not Id */
  6841.       if (! ((xxToken == 50 /* 'elseif' */) || (xxVerticalSet [xxToken + 648] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */))) break;
  6842.     }
  6843.     if (xxToken != 50 /* 'elseif' */)
  6844.       xxRecoveryLiteral (50, 159, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'elseif' false 'old' Result 'strip' true not Id */
  6845.     else {
  6846.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6847.     }
  6848.   }
  6849. }
  6850.  
  6851. static void yyThen_part
  6852. # if defined __STDC__ | defined __cplusplus
  6853. (ParserMEY_tParsAttribute * Then_part0, xxtUnionPtr xxGlobalRecoverySet)
  6854. # else
  6855. (Then_part0, xxGlobalRecoverySet)
  6856. ParserMEY_tParsAttribute    * Then_part0;
  6857. xxtUnionPtr    xxGlobalRecoverySet;
  6858. # endif
  6859. {
  6860.     EiffelScan_tScanAttribute then1;
  6861.   ParserMEY_tParsAttribute Compound1;
  6862.   ParserMEY_tParsAttribute Boolean_expression1;
  6863.   xxtUnion xxUnion;
  6864.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6865.   xxUnion.xxLocalRecoverySet = 160; yyBoolean_expression (& Boolean_expression1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */
  6866.   if (xxToken != 89 /* then */)
  6867.     xxRecoveryTerminal (89, 160, xxGlobalRecoverySet, & then1); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */
  6868.   else {
  6869.     then1 =   EiffelScan_Attribute;
  6870.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6871.   }
  6872.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  6873. /* line 722 "eiffel_mey.ell" */
  6874.  Then_part0->Tree = mThen_part(Boolean_expression1.Tree, ReverseTree(Compound1.Tree));    
  6875. }
  6876.  
  6877. static void yyElse_part
  6878. # if defined __STDC__ | defined __cplusplus
  6879. (ParserMEY_tParsAttribute * Else_part0, xxtUnionPtr xxGlobalRecoverySet)
  6880. # else
  6881. (Else_part0, xxGlobalRecoverySet)
  6882. ParserMEY_tParsAttribute    * Else_part0;
  6883. xxtUnionPtr    xxGlobalRecoverySet;
  6884. # endif
  6885. {
  6886.     EiffelScan_tScanAttribute else1;
  6887.   ParserMEY_tParsAttribute Compound1;
  6888.   xxtUnion xxUnion;
  6889.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6890.   if (xxToken != 49 /* else */)
  6891.     xxRecoveryTerminal (49, 161, xxGlobalRecoverySet, & else1); /*  ';' '!' '!!' '(' 'check' Current 'debug' else 'from' 'if' 'inspect' Result retry Id */
  6892.   else {
  6893.     else1 =   EiffelScan_Attribute;
  6894.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6895.   }
  6896.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  6897. /* line 725 "eiffel_mey.ell" */
  6898.  Else_part0->Tree = ReverseTree(Compound1.Tree);                    
  6899. }
  6900.  
  6901. static void yyMulti_branch
  6902. # if defined __STDC__ | defined __cplusplus
  6903. (ParserMEY_tParsAttribute * Multi_branch0, xxtUnionPtr xxGlobalRecoverySet)
  6904. # else
  6905. (Multi_branch0, xxGlobalRecoverySet)
  6906. ParserMEY_tParsAttribute    * Multi_branch0;
  6907. xxtUnionPtr    xxGlobalRecoverySet;
  6908. # endif
  6909. {
  6910.   ParserMEY_tParsAttribute Expression1;
  6911.   ParserMEY_tParsAttribute Else_part1;
  6912.   ParserMEY_tParsAttribute When_part_list1;
  6913.   xxtUnion xxUnion;
  6914.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6915.   if (xxToken != 65 /* 'inspect' */)
  6916.     xxRecoveryLiteral (65, 162, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current else 'end' false 'inspect' 'old' Result 'strip' true 'when' not Id */
  6917.   else {
  6918.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6919.   }
  6920.   xxUnion.xxLocalRecoverySet = 163; yyExpression (& Expression1, & xxUnion); /*  else 'end' 'when' */
  6921. /* line 730 "eiffel_mey.ell" */
  6922.  Multi_branch0->Tree = mMulti_branch(Expression1.Tree, mWhen_part_list0(), mCompound0());
  6923.   for (;;) {
  6924.     if ((xxToken == 95 /* 'when' */)) {
  6925.       xxUnion.xxLocalRecoverySet = 157; yyWhen_part_list (& When_part_list1, & xxUnion); /*  else 'end' */
  6926. /* line 731 "eiffel_mey.ell" */
  6927.  Multi_branch0->Tree->Multi_branch.When_part_list = ReverseTree(When_part_list1.Tree);    
  6928.       break;
  6929.     } else if ((xxVerticalSet [xxToken + 648] & 1 << 6 /*  else 'end' */) || xxIsRepairMode) break;
  6930.     xxExpected (163, 163, xxGlobalRecoverySet); /*  else 'end' 'when' /  else 'end' 'when' */
  6931.   }
  6932.   for (;;) {
  6933.     if ((xxToken == 49 /* else */)) {
  6934.       xxUnion.xxLocalRecoverySet = 10; yyElse_part (& Else_part1, & xxUnion); /*  'end' */
  6935. /* line 732 "eiffel_mey.ell" */
  6936.  Multi_branch0->Tree->Multi_branch.Else_part = Else_part1.Tree;            
  6937.       break;
  6938.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  6939.     xxExpected (157, 157, xxGlobalRecoverySet); /*  else 'end' /  else 'end' */
  6940.   }
  6941.   if (xxToken != 51 /* 'end' */)
  6942.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  6943.   else {
  6944.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6945.   }
  6946. }
  6947.  
  6948. static void yyWhen_part_list
  6949. # if defined __STDC__ | defined __cplusplus
  6950. (ParserMEY_tParsAttribute * When_part_list0, xxtUnionPtr xxGlobalRecoverySet)
  6951. # else
  6952. (When_part_list0, xxGlobalRecoverySet)
  6953. ParserMEY_tParsAttribute    * When_part_list0;
  6954. xxtUnionPtr    xxGlobalRecoverySet;
  6955. # endif
  6956. {
  6957.   ParserMEY_tParsAttribute When_part1;
  6958.   xxtUnion xxUnion;
  6959.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6960. /* line 735 "eiffel_mey.ell" */
  6961.  When_part_list0->Tree = mWhen_part_list0();                        
  6962.   if (xxToken != 95 /* 'when' */)
  6963.     xxRecoveryLiteral (95, 164, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */
  6964.   else {
  6965.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6966.   }
  6967.   for (;;) {
  6968.     xxUnion.xxLocalRecoverySet = 165; yyWhen_part (& When_part1, & xxUnion); /*  'when' */
  6969. /* line 736 "eiffel_mey.ell" */
  6970.  When_part_list0->Tree = mWhen_part_list1(When_part1.Tree, When_part_list0->Tree);    
  6971.     if (! ((xxToken == 95 /* 'when' */))) {
  6972.       if ((xxVerticalSet [xxToken + 648] & 1 << 6 /*  else 'end' */)) break;
  6973.       xxExpected (165, 164, xxGlobalRecoverySet); /*  'when' /  Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */
  6974.       if (! ((xxToken == 95 /* 'when' */) || (xxVerticalSet [xxToken + 648] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */))) break;
  6975.     }
  6976.     if (xxToken != 95 /* 'when' */)
  6977.       xxRecoveryLiteral (95, 164, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false then true 'when' Id */
  6978.     else {
  6979.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  6980.     }
  6981.   }
  6982. }
  6983.  
  6984. static void yyWhen_part
  6985. # if defined __STDC__ | defined __cplusplus
  6986. (ParserMEY_tParsAttribute * When_part0, xxtUnionPtr xxGlobalRecoverySet)
  6987. # else
  6988. (When_part0, xxGlobalRecoverySet)
  6989. ParserMEY_tParsAttribute    * When_part0;
  6990. xxtUnionPtr    xxGlobalRecoverySet;
  6991. # endif
  6992. {
  6993.     EiffelScan_tScanAttribute then1;
  6994.   ParserMEY_tParsAttribute Compound1;
  6995.   ParserMEY_tParsAttribute Choices1;
  6996.   xxtUnion xxUnion;
  6997.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  6998.   xxUnion.xxLocalRecoverySet = 160; yyChoices (& Choices1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */
  6999.   if (xxToken != 89 /* then */)
  7000.     xxRecoveryTerminal (89, 160, xxGlobalRecoverySet, & then1); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry then Id */
  7001.   else {
  7002.     then1 =   EiffelScan_Attribute;
  7003.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7004.   }
  7005.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  7006. /* line 740 "eiffel_mey.ell" */
  7007.  When_part0->Tree = mWhen_part(ReverseTree(Choices1.Tree), ReverseTree(Compound1.Tree));
  7008. }
  7009.  
  7010. static void yyChoices
  7011. # if defined __STDC__ | defined __cplusplus
  7012. (ParserMEY_tParsAttribute * Choices0, xxtUnionPtr xxGlobalRecoverySet)
  7013. # else
  7014. (Choices0, xxGlobalRecoverySet)
  7015. ParserMEY_tParsAttribute    * Choices0;
  7016. xxtUnionPtr    xxGlobalRecoverySet;
  7017. # endif
  7018. {
  7019.   ParserMEY_tParsAttribute Choice1;
  7020.   xxtUnion xxUnion;
  7021.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7022. /* line 742 "eiffel_mey.ell" */
  7023.  Choices0->Tree = mChoices0();                                
  7024.   for (;;) {
  7025.     if ((xxVerticalSet [xxToken + 108] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */)) {
  7026.       for (;;) {
  7027.         xxUnion.xxLocalRecoverySet = 16; yyChoice (& Choice1, & xxUnion); /*  ',' */
  7028. /* line 743 "eiffel_mey.ell" */
  7029.  Choices0->Tree = mChoices1(Choice1.Tree, Choices0->Tree);                
  7030.         if (! ((xxToken == 8 /* ',' */))) {
  7031.           if ((xxToken == 89 /* then */)) break;
  7032.           xxExpected (16, 17, xxGlobalRecoverySet); /*  ',' /  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  7033.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 108] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */))) break;
  7034.         }
  7035.         if (xxToken != 8 /* ',' */)
  7036.           xxRecoveryLiteral (8, 17, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  7037.         else {
  7038.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7039.         }
  7040.       }
  7041.       break;
  7042.     } else if ((xxToken == 89 /* then */) || xxIsRepairMode) break;
  7043.     xxExpected (17, 17, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id /  Character_constant Bit_sequence Integer Real Manifest_string ',' plus minus false true Id */
  7044.   }
  7045. }
  7046.  
  7047. static void yyChoice
  7048. # if defined __STDC__ | defined __cplusplus
  7049. (ParserMEY_tParsAttribute * Choice0, xxtUnionPtr xxGlobalRecoverySet)
  7050. # else
  7051. (Choice0, xxGlobalRecoverySet)
  7052. ParserMEY_tParsAttribute    * Choice0;
  7053. xxtUnionPtr    xxGlobalRecoverySet;
  7054. # endif
  7055. {
  7056.     EiffelScan_tScanAttribute Character_constant1, Character_constant2;
  7057.     EiffelScan_tScanAttribute Manifest_string1;
  7058.   ParserMEY_tParsAttribute Identifier1;
  7059.   ParserMEY_tParsAttribute Number_constant1, Number_constant2;
  7060.   ParserMEY_tParsAttribute Boolean_constant1;
  7061.   ParserMEY_tParsAttribute Bit_constant1;
  7062.   xxtUnion xxUnion;
  7063.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7064.   for (;;) {
  7065.     switch (xxToken) {
  7066.     case 1 /* Character_constant */ :; 
  7067.       Character_constant1 =       EiffelScan_Attribute;
  7068.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7069. /* line 747 "eiffel_mey.ell" */
  7070.  Choice0->Tree = mVal(mCh(Character_constant1.Char, Character_constant1.Position));    
  7071.       for (;;) {
  7072.         if ((xxToken == 16 /* '..' */)) {
  7073.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7074.           if (xxToken != 1 /* Character_constant */)
  7075.             xxRecoveryTerminal (1, 168, xxGlobalRecoverySet, & Character_constant2); /*  Character_constant */
  7076.           else {
  7077.             Character_constant2 =           EiffelScan_Attribute;
  7078.             xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7079.           }
  7080. /* line 748 "eiffel_mey.ell" */
  7081.  Choice0->Tree = mInterval(Choice0->Tree, mCh(Character_constant2.Char, 
  7082.                                         Character_constant2.Position));    
  7083.           break;
  7084.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 0 /*  ',' then */) || xxIsRepairMode) break;
  7085.         xxExpected (167, 167, xxGlobalRecoverySet); /*  '..' /  '..' */
  7086.       }
  7087.       goto xx30;
  7088.     case 3 /* Integer */ :; 
  7089.     case 4 /* Real */ :; 
  7090.     case 8 /* ',' */ :; 
  7091.     case 16 /* '..' */ :; 
  7092.     case 29 /* plus */ :; 
  7093.     case 30 /* minus */ :; 
  7094.     case 89 /* then */ :; 
  7095.       xxUnion.xxLocalRecoverySet = 167; yyNumber_constant (& Number_constant1, & xxUnion); /*  '..' */
  7096. /* line 751 "eiffel_mey.ell" */
  7097.  Choice0->Tree = mVal(Number_constant1.Tree);                        
  7098.       for (;;) {
  7099.         if ((xxToken == 16 /* '..' */)) {
  7100.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7101.           xxUnion.xxLocalRecoverySet = 0; yyNumber_constant (& Number_constant2, & xxUnion); /*  */
  7102. /* line 752 "eiffel_mey.ell" */
  7103.  Choice0->Tree = mInterval(Number_constant1.Tree, Number_constant2.Tree);         
  7104.           break;
  7105.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 0 /*  ',' then */) || xxIsRepairMode) break;
  7106.         xxExpected (167, 167, xxGlobalRecoverySet); /*  '..' /  '..' */
  7107.       }
  7108.       goto xx30;
  7109.     case 56 /* false */ :; 
  7110.     case 90 /* true */ :; 
  7111.       xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  7112. /* line 753 "eiffel_mey.ell" */
  7113.  Choice0->Tree = mVal(Boolean_constant1.Tree);                        
  7114.       goto xx30;
  7115.     case 5 /* Manifest_string */ :; 
  7116.       Manifest_string1 =       EiffelScan_Attribute;
  7117.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7118. /* line 754 "eiffel_mey.ell" */
  7119.  Choice0->Tree = mVal(mString(Manifest_string1.StringRef, Manifest_string1.Position)); 
  7120.       goto xx30;
  7121.     case 2 /* Bit_sequence */ :; 
  7122.       xxUnion.xxLocalRecoverySet = 0; yyBit_constant (& Bit_constant1, & xxUnion); /*  */
  7123. /* line 755 "eiffel_mey.ell" */
  7124.  Choice0->Tree = mVal(Bit_constant1.Tree);                        
  7125.       goto xx30;
  7126.     case 106 /* Id */ :; 
  7127.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  7128. /* line 756 "eiffel_mey.ell" */
  7129.  Choice0->Tree = mVal(Identifier1.Tree);                        
  7130.       goto xx30;
  7131.     case 6:;
  7132.     case 7:;
  7133.     case 9:;
  7134.     case 10:;
  7135.     case 11:;
  7136.     case 12:;
  7137.     case 13:;
  7138.     case 14:;
  7139.     case 15:;
  7140.     case 17:;
  7141.     case 18:;
  7142.     case 19:;
  7143.     case 20:;
  7144.     case 21:;
  7145.     case 22:;
  7146.     case 23:;
  7147.     case 24:;
  7148.     case 25:;
  7149.     case 26:;
  7150.     case 27:;
  7151.     case 28:;
  7152.     case 31:;
  7153.     case 32:;
  7154.     case 33:;
  7155.     case 34:;
  7156.     case 35:;
  7157.     case 36:;
  7158.     case 37:;
  7159.     case 38:;
  7160.     case 39:;
  7161.     case 40:;
  7162.     case 41:;
  7163.     case 42:;
  7164.     case 43:;
  7165.     case 44:;
  7166.     case 45:;
  7167.     case 46:;
  7168.     case 47:;
  7169.     case 48:;
  7170.     case 49:;
  7171.     case 50:;
  7172.     case 51:;
  7173.     case 52:;
  7174.     case 53:;
  7175.     case 54:;
  7176.     case 55:;
  7177.     case 57:;
  7178.     case 58:;
  7179.     case 59:;
  7180.     case 60:;
  7181.     case 61:;
  7182.     case 62:;
  7183.     case 63:;
  7184.     case 64:;
  7185.     case 65:;
  7186.     case 66:;
  7187.     case 67:;
  7188.     case 68:;
  7189.     case 69:;
  7190.     case 70:;
  7191.     case 71:;
  7192.     case 72:;
  7193.     case 73:;
  7194.     case 74:;
  7195.     case 75:;
  7196.     case 76:;
  7197.     case 77:;
  7198.     case 78:;
  7199.     case 79:;
  7200.     case 80:;
  7201.     case 81:;
  7202.     case 82:;
  7203.     case 83:;
  7204.     case 84:;
  7205.     case 85:;
  7206.     case 86:;
  7207.     case 87:;
  7208.     case 88:;
  7209.     case 91:;
  7210.     case 92:;
  7211.     case 93:;
  7212.     case 94:;
  7213.     case 95:;
  7214.     case 96:;
  7215.     case 97:;
  7216.     case 98:;
  7217.     case 99:;
  7218.     case 100:;
  7219.     case 101:;
  7220.     case 102:;
  7221.     case 103:;
  7222.     case 104:;
  7223.     case 105:;
  7224.     default:
  7225.       if (xxIsRepairMode) {
  7226.         if (xxToken != 1 /* Character_constant */)
  7227.           xxRecoveryTerminal (1, 166, xxGlobalRecoverySet, & Character_constant1); /*  Character_constant '..' */
  7228.         else {
  7229.           Character_constant1 =         EiffelScan_Attribute;
  7230.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7231.         }
  7232. /* line 747 "eiffel_mey.ell" */
  7233.  Choice0->Tree = mVal(mCh(Character_constant1.Char, Character_constant1.Position));    
  7234.         for (;;) {
  7235.           if ((xxToken == 16 /* '..' */)) {
  7236.             xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7237.             if (xxToken != 1 /* Character_constant */)
  7238.               xxRecoveryTerminal (1, 168, xxGlobalRecoverySet, & Character_constant2); /*  Character_constant */
  7239.             else {
  7240.               Character_constant2 =             EiffelScan_Attribute;
  7241.               xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7242.             }
  7243. /* line 748 "eiffel_mey.ell" */
  7244.  Choice0->Tree = mInterval(Choice0->Tree, mCh(Character_constant2.Char, 
  7245.                                         Character_constant2.Position));    
  7246.             break;
  7247.           } else if ((xxVerticalSet [xxToken + 756] & 1 << 0 /*  ',' then */) || xxIsRepairMode) break;
  7248.           xxExpected (167, 167, xxGlobalRecoverySet); /*  '..' /  '..' */
  7249.         }
  7250.         goto xx30;
  7251.       }
  7252. xxUnexpected (170, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string '..' plus minus false true Id */
  7253.     }
  7254.   }
  7255.   xx30:;
  7256. }
  7257.  
  7258. static void yyLoop
  7259. # if defined __STDC__ | defined __cplusplus
  7260. (ParserMEY_tParsAttribute * Loop0, xxtUnionPtr xxGlobalRecoverySet)
  7261. # else
  7262. (Loop0, xxGlobalRecoverySet)
  7263. ParserMEY_tParsAttribute    * Loop0;
  7264. xxtUnionPtr    xxGlobalRecoverySet;
  7265. # endif
  7266. {
  7267.   ParserMEY_tParsAttribute Invariant1;
  7268.   ParserMEY_tParsAttribute Variant1;
  7269.   ParserMEY_tParsAttribute Initialization1;
  7270.   ParserMEY_tParsAttribute Loop_body1;
  7271.   xxtUnion xxUnion;
  7272.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7273.   xxUnion.xxLocalRecoverySet = 171; yyInitialization (& Initialization1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'invariant' 'old' Result 'strip' true 'until' 'variant' not Id */
  7274. /* line 761 "eiffel_mey.ell" */
  7275.  Loop0->Tree = mLoop(Initialization1.Tree, mCondition0(), mAssertion_clause0(), mLoop_body0());
  7276.   for (;;) {
  7277.     if ((xxToken == 67 /* 'invariant' */)) {
  7278.       xxUnion.xxLocalRecoverySet = 173; yyInvariant (& Invariant1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'old' Result 'strip' true 'until' 'variant' not Id */
  7279. /* line 762 "eiffel_mey.ell" */
  7280.  Loop0->Tree->Loop.Invariant = Invariant1.Tree;                    
  7281.       break;
  7282.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 1 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'until' 'variant' not Id */) || xxIsRepairMode) break;
  7283.     xxExpected (172, 171, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'invariant' 'old' Result 'strip' true 'until' 'variant' not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'invariant' 'old' Result 'strip' true 'until' 'variant' not Id */
  7284.   }
  7285.   for (;;) {
  7286.     if ((xxVerticalSet [xxToken + 756] & 1 << 2 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'variant' not Id */)) {
  7287.       xxUnion.xxLocalRecoverySet = 175; yyVariant (& Variant1, & xxUnion); /*  'end' 'until' */
  7288. /* line 763 "eiffel_mey.ell" */
  7289.  Loop0->Tree->Loop.Variant = Variant1.Tree;                        
  7290.       break;
  7291.     } else if ((xxToken == 93 /* 'until' */) || xxIsRepairMode) break;
  7292.     xxExpected (174, 173, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'until' 'variant' not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current 'end' false 'old' Result 'strip' true 'until' 'variant' not Id */
  7293.   }
  7294.   xxUnion.xxLocalRecoverySet = 10; yyLoop_body (& Loop_body1, & xxUnion); /*  'end' */
  7295. /* line 764 "eiffel_mey.ell" */
  7296.  Loop0->Tree->Loop.Loop_body = Loop_body1.Tree;                    
  7297.   if (xxToken != 51 /* 'end' */)
  7298.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  7299.   else {
  7300.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7301.   }
  7302. }
  7303.  
  7304. static void yyInitialization
  7305. # if defined __STDC__ | defined __cplusplus
  7306. (ParserMEY_tParsAttribute * Initialization0, xxtUnionPtr xxGlobalRecoverySet)
  7307. # else
  7308. (Initialization0, xxGlobalRecoverySet)
  7309. ParserMEY_tParsAttribute    * Initialization0;
  7310. xxtUnionPtr    xxGlobalRecoverySet;
  7311. # endif
  7312. {
  7313.   ParserMEY_tParsAttribute Compound1;
  7314.   xxtUnion xxUnion;
  7315.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7316.   if (xxToken != 58 /* 'from' */)
  7317.     xxRecoveryLiteral (58, 105, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7318.   else {
  7319.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7320.   }
  7321.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  7322. /* line 771 "eiffel_mey.ell" */
  7323.  Initialization0->Tree = ReverseTree(Compound1.Tree);                    
  7324. }
  7325.  
  7326. static void yyLoop_body
  7327. # if defined __STDC__ | defined __cplusplus
  7328. (ParserMEY_tParsAttribute * Loop_body0, xxtUnionPtr xxGlobalRecoverySet)
  7329. # else
  7330. (Loop_body0, xxGlobalRecoverySet)
  7331. ParserMEY_tParsAttribute    * Loop_body0;
  7332. xxtUnionPtr    xxGlobalRecoverySet;
  7333. # endif
  7334. {
  7335.   ParserMEY_tParsAttribute Compound1;
  7336.   ParserMEY_tParsAttribute Exit1;
  7337.   xxtUnion xxUnion;
  7338.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7339.   xxUnion.xxLocalRecoverySet = 176; yyExit (& Exit1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' 'loop' Result retry Id */
  7340.   if (xxToken != 71 /* 'loop' */)
  7341.     xxRecoveryLiteral (71, 176, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' 'loop' Result retry Id */
  7342.   else {
  7343.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7344.   }
  7345.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  7346. /* line 774 "eiffel_mey.ell" */
  7347.  Loop_body0->Tree = mLoop_body1(Exit1.Tree, ReverseTree(Compound1.Tree));        
  7348. }
  7349.  
  7350. static void yyExit
  7351. # if defined __STDC__ | defined __cplusplus
  7352. (ParserMEY_tParsAttribute * Exit0, xxtUnionPtr xxGlobalRecoverySet)
  7353. # else
  7354. (Exit0, xxGlobalRecoverySet)
  7355. ParserMEY_tParsAttribute    * Exit0;
  7356. xxtUnionPtr    xxGlobalRecoverySet;
  7357. # endif
  7358. {
  7359.   ParserMEY_tParsAttribute Boolean_expression1;
  7360.   xxtUnion xxUnion;
  7361.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7362.   if (xxToken != 93 /* 'until' */)
  7363.     xxRecoveryLiteral (93, 177, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true 'until' not Id */
  7364.   else {
  7365.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7366.   }
  7367.   xxUnion.xxLocalRecoverySet = 0; yyBoolean_expression (& Boolean_expression1, & xxUnion); /*  */
  7368. /* line 777 "eiffel_mey.ell" */
  7369.  Exit0->Tree = Boolean_expression1.Tree;                    
  7370. }
  7371.  
  7372. static void yyDebug
  7373. # if defined __STDC__ | defined __cplusplus
  7374. (ParserMEY_tParsAttribute * Debug0, xxtUnionPtr xxGlobalRecoverySet)
  7375. # else
  7376. (Debug0, xxGlobalRecoverySet)
  7377. ParserMEY_tParsAttribute    * Debug0;
  7378. xxtUnionPtr    xxGlobalRecoverySet;
  7379. # endif
  7380. {
  7381.   ParserMEY_tParsAttribute Compound1;
  7382.   ParserMEY_tParsAttribute Keys_or_qual_call1;
  7383.   xxtUnion xxUnion;
  7384.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7385.   if (xxToken != 45 /* 'debug' */)
  7386.     xxRecoveryLiteral (45, 178, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'end' 'from' 'if' 'inspect' Result retry Id */
  7387.   else {
  7388.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7389.   }
  7390.   for (;;) {
  7391.     switch (xxToken) {
  7392.     case 17 /* '(' */ :; 
  7393.       xxUnion.xxLocalRecoverySet = 10; yyKeys_or_qual_call (& Keys_or_qual_call1, & xxUnion); /*  'end' */
  7394. /* line 782 "eiffel_mey.ell" */
  7395.  Debug0->Tree = Keys_or_qual_call1.Tree;                    
  7396.       goto xx31;
  7397.     case 7 /* ';' */ :; 
  7398.     case 11 /* '!' */ :; 
  7399.     case 12 /* '!!' */ :; 
  7400.     case 41 /* 'check' */ :; 
  7401.     case 44 /* Current */ :; 
  7402.     case 45 /* 'debug' */ :; 
  7403.     case 51 /* 'end' */ :; 
  7404.     case 58 /* 'from' */ :; 
  7405.     case 60 /* 'if' */ :; 
  7406.     case 65 /* 'inspect' */ :; 
  7407.     case 83 /* Result */ :; 
  7408.     case 84 /* retry */ :; 
  7409.     case 106 /* Id */ :; 
  7410.       xxUnion.xxLocalRecoverySet = 10; yyCompound (& Compound1, & xxUnion); /*  'end' */
  7411. /* line 783 "eiffel_mey.ell" */
  7412.  Debug0->Tree = mDebug(mnolist(), ReverseTree(Compound1.Tree));        
  7413.       goto xx31;
  7414.     case 8:;
  7415.     case 9:;
  7416.     case 10:;
  7417.     case 13:;
  7418.     case 14:;
  7419.     case 15:;
  7420.     case 16:;
  7421.     case 18:;
  7422.     case 19:;
  7423.     case 20:;
  7424.     case 21:;
  7425.     case 22:;
  7426.     case 23:;
  7427.     case 24:;
  7428.     case 25:;
  7429.     case 26:;
  7430.     case 27:;
  7431.     case 28:;
  7432.     case 29:;
  7433.     case 30:;
  7434.     case 31:;
  7435.     case 32:;
  7436.     case 33:;
  7437.     case 34:;
  7438.     case 35:;
  7439.     case 36:;
  7440.     case 37:;
  7441.     case 38:;
  7442.     case 39:;
  7443.     case 40:;
  7444.     case 42:;
  7445.     case 43:;
  7446.     case 46:;
  7447.     case 47:;
  7448.     case 48:;
  7449.     case 49:;
  7450.     case 50:;
  7451.     case 52:;
  7452.     case 53:;
  7453.     case 54:;
  7454.     case 55:;
  7455.     case 56:;
  7456.     case 57:;
  7457.     case 59:;
  7458.     case 61:;
  7459.     case 62:;
  7460.     case 63:;
  7461.     case 64:;
  7462.     case 66:;
  7463.     case 67:;
  7464.     case 68:;
  7465.     case 69:;
  7466.     case 70:;
  7467.     case 71:;
  7468.     case 72:;
  7469.     case 73:;
  7470.     case 74:;
  7471.     case 75:;
  7472.     case 76:;
  7473.     case 77:;
  7474.     case 78:;
  7475.     case 79:;
  7476.     case 80:;
  7477.     case 81:;
  7478.     case 82:;
  7479.     case 85:;
  7480.     case 86:;
  7481.     case 87:;
  7482.     case 88:;
  7483.     case 89:;
  7484.     case 90:;
  7485.     case 91:;
  7486.     case 92:;
  7487.     case 93:;
  7488.     case 94:;
  7489.     case 95:;
  7490.     case 96:;
  7491.     case 97:;
  7492.     case 98:;
  7493.     case 99:;
  7494.     case 100:;
  7495.     case 101:;
  7496.     case 102:;
  7497.     case 103:;
  7498.     case 104:;
  7499.     case 105:;
  7500.     default:
  7501.       if (xxIsRepairMode) {
  7502.         xxUnion.xxLocalRecoverySet = 10; yyCompound (& Compound1, & xxUnion); /*  'end' */
  7503. /* line 783 "eiffel_mey.ell" */
  7504.  Debug0->Tree = mDebug(mnolist(), ReverseTree(Compound1.Tree));        
  7505.         goto xx31;
  7506.       }
  7507.       xxExpected (178, 178, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'end' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'end' 'from' 'if' 'inspect' Result retry Id */
  7508.     }
  7509.   }
  7510.   xx31:;
  7511.   if (xxToken != 51 /* 'end' */)
  7512.     xxRecoveryLiteral (51, 10, xxGlobalRecoverySet); /*  'end' */
  7513.   else {
  7514.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7515.   }
  7516. }
  7517.  
  7518. static void yyKeys_or_qual_call
  7519. # if defined __STDC__ | defined __cplusplus
  7520. (ParserMEY_tParsAttribute * Keys_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet)
  7521. # else
  7522. (Keys_or_qual_call0, xxGlobalRecoverySet)
  7523. ParserMEY_tParsAttribute    * Keys_or_qual_call0;
  7524. xxtUnionPtr    xxGlobalRecoverySet;
  7525. # endif
  7526. {
  7527.   ParserMEY_tParsAttribute Compound1, Compound2, Compound3;
  7528.   ParserMEY_tParsAttribute Call_chain1, Call_chain2, Call_chain3;
  7529.   ParserMEY_tParsAttribute Expression1;
  7530.   ParserMEY_tParsAttribute Expr_tail1;
  7531.   ParserMEY_tParsAttribute String1;
  7532.   ParserMEY_tParsAttribute String_list1;
  7533.   ParserMEY_tParsAttribute One_compound1, One_compound2, One_compound3;
  7534.   xxtUnion xxUnion;
  7535.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  7536.   if (xxToken != 17 /* '(' */)
  7537.     xxRecoveryLiteral (17, 179, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  7538.   else {
  7539.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7540.   }
  7541.   for (;;) {
  7542.     switch (xxToken) {
  7543.     case 5 /* Manifest_string */ :; 
  7544.       xxUnion.xxLocalRecoverySet = 180; yyString (& String1, & xxUnion); /*  Free_op ',' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  7545.       for (;;) {
  7546.         switch (xxToken) {
  7547.         case 8 /* ',' */ :; 
  7548.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7549.           xxUnion.xxLocalRecoverySet = 182; yyString_list (& String_list1, & xxUnion); /*  ';' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7550.           if (xxToken != 18 /* ')' */)
  7551.             xxRecoveryLiteral (18, 182, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7552.           else {
  7553.             xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7554.           }
  7555.           xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  7556. /* line 790 "eiffel_mey.ell" */
  7557.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, String_list1.Tree), 
  7558.                                         ReverseTree(Compound1.Tree));    
  7559.           goto xx33;
  7560.         case 18 /* ')' */ :; 
  7561.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7562.           for (;;) {
  7563.             switch (xxToken) {
  7564.             case 10 /* '.' */ :; 
  7565.               xxToken =               EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7566.               xxUnion.xxLocalRecoverySet = 105; yyCall_chain (& Call_chain1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7567.               xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound1, & xxUnion); /*  */
  7568. /* line 794 "eiffel_mey.ell" */
  7569.  Keys_or_qual_call0->Tree = mDebug(mnolist(), mCompound1(mCall(String1.Tree, 
  7570.                             Call_chain1.Tree), ReverseTree(One_compound1.Tree)) );  
  7571.               goto xx34;
  7572.             case 7 /* ';' */ :; 
  7573.             case 11 /* '!' */ :; 
  7574.             case 12 /* '!!' */ :; 
  7575.             case 17 /* '(' */ :; 
  7576.             case 41 /* 'check' */ :; 
  7577.             case 44 /* Current */ :; 
  7578.             case 45 /* 'debug' */ :; 
  7579.             case 51 /* 'end' */ :; 
  7580.             case 58 /* 'from' */ :; 
  7581.             case 60 /* 'if' */ :; 
  7582.             case 65 /* 'inspect' */ :; 
  7583.             case 83 /* Result */ :; 
  7584.             case 84 /* retry */ :; 
  7585.             case 106 /* Id */ :; 
  7586.               xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /*  */
  7587. /* line 798 "eiffel_mey.ell" */
  7588.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); 
  7589.               goto xx34;
  7590.             case 8:;
  7591.             case 9:;
  7592.             case 13:;
  7593.             case 14:;
  7594.             case 15:;
  7595.             case 16:;
  7596.             case 18:;
  7597.             case 19:;
  7598.             case 20:;
  7599.             case 21:;
  7600.             case 22:;
  7601.             case 23:;
  7602.             case 24:;
  7603.             case 25:;
  7604.             case 26:;
  7605.             case 27:;
  7606.             case 28:;
  7607.             case 29:;
  7608.             case 30:;
  7609.             case 31:;
  7610.             case 32:;
  7611.             case 33:;
  7612.             case 34:;
  7613.             case 35:;
  7614.             case 36:;
  7615.             case 37:;
  7616.             case 38:;
  7617.             case 39:;
  7618.             case 40:;
  7619.             case 42:;
  7620.             case 43:;
  7621.             case 46:;
  7622.             case 47:;
  7623.             case 48:;
  7624.             case 49:;
  7625.             case 50:;
  7626.             case 52:;
  7627.             case 53:;
  7628.             case 54:;
  7629.             case 55:;
  7630.             case 56:;
  7631.             case 57:;
  7632.             case 59:;
  7633.             case 61:;
  7634.             case 62:;
  7635.             case 63:;
  7636.             case 64:;
  7637.             case 66:;
  7638.             case 67:;
  7639.             case 68:;
  7640.             case 69:;
  7641.             case 70:;
  7642.             case 71:;
  7643.             case 72:;
  7644.             case 73:;
  7645.             case 74:;
  7646.             case 75:;
  7647.             case 76:;
  7648.             case 77:;
  7649.             case 78:;
  7650.             case 79:;
  7651.             case 80:;
  7652.             case 81:;
  7653.             case 82:;
  7654.             case 85:;
  7655.             case 86:;
  7656.             case 87:;
  7657.             case 88:;
  7658.             case 89:;
  7659.             case 90:;
  7660.             case 91:;
  7661.             case 92:;
  7662.             case 93:;
  7663.             case 94:;
  7664.             case 95:;
  7665.             case 96:;
  7666.             case 97:;
  7667.             case 98:;
  7668.             case 99:;
  7669.             case 100:;
  7670.             case 101:;
  7671.             case 102:;
  7672.             case 103:;
  7673.             case 104:;
  7674.             case 105:;
  7675.             default:
  7676.               if (xxIsRepairMode) {
  7677.                 xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /*  */
  7678. /* line 798 "eiffel_mey.ell" */
  7679.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); 
  7680.                 goto xx34;
  7681.               }
  7682. xxUnexpected (184, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7683.             }
  7684.           }
  7685.           xx34:;
  7686.           goto xx33;
  7687.         case 6 /* Free_op */ :; 
  7688.         case 13 /* Eq */ :; 
  7689.         case 14 /* Not_eq */ :; 
  7690.         case 29 /* plus */ :; 
  7691.         case 30 /* minus */ :; 
  7692.         case 33 /* div */ :; 
  7693.         case 36 /* and */ :; 
  7694.         case 61 /* implies */ :; 
  7695.         case 76 /* or */ :; 
  7696.         case 96 /* xor */ :; 
  7697.         case 97 /* times */ :; 
  7698.         case 98 /* smaller */ :; 
  7699.         case 99 /* greater */ :; 
  7700.         case 100 /* sm_eq */ :; 
  7701.         case 101 /* gr_eq */ :; 
  7702.         case 102 /* idiv */ :; 
  7703.         case 103 /* imod */ :; 
  7704.         case 104 /* power */ :; 
  7705.           xxUnion.xxLocalRecoverySet = 183; yyExpr_tail (& Expr_tail1, & xxUnion); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7706.           if (xxToken != 18 /* ')' */)
  7707.             xxRecoveryLiteral (18, 183, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7708.           else {
  7709.             xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7710.           }
  7711.           if (xxToken != 10 /* '.' */)
  7712.             xxRecoveryLiteral (10, 184, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7713.           else {
  7714.             xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7715.           }
  7716.           xxUnion.xxLocalRecoverySet = 105; yyCall_chain (& Call_chain2, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7717.           xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound2, & xxUnion); /*  */
  7718. /* line 803 "eiffel_mey.ell" */
  7719.  Keys_or_qual_call0->Tree = mDebug(mnolist(),mCompound1(mCall(mBin_expr(String1.Tree, 
  7720.                     Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop), Call_chain2.Tree), 
  7721.                                     ReverseTree(One_compound2.Tree)));     
  7722.           goto xx33;
  7723.         case 7:;
  7724.         case 9:;
  7725.         case 10:;
  7726.         case 11:;
  7727.         case 12:;
  7728.         case 15:;
  7729.         case 16:;
  7730.         case 17:;
  7731.         case 19:;
  7732.         case 20:;
  7733.         case 21:;
  7734.         case 22:;
  7735.         case 23:;
  7736.         case 24:;
  7737.         case 25:;
  7738.         case 26:;
  7739.         case 27:;
  7740.         case 28:;
  7741.         case 31:;
  7742.         case 32:;
  7743.         case 34:;
  7744.         case 35:;
  7745.         case 37:;
  7746.         case 38:;
  7747.         case 39:;
  7748.         case 40:;
  7749.         case 41:;
  7750.         case 42:;
  7751.         case 43:;
  7752.         case 44:;
  7753.         case 45:;
  7754.         case 46:;
  7755.         case 47:;
  7756.         case 48:;
  7757.         case 49:;
  7758.         case 50:;
  7759.         case 51:;
  7760.         case 52:;
  7761.         case 53:;
  7762.         case 54:;
  7763.         case 55:;
  7764.         case 56:;
  7765.         case 57:;
  7766.         case 58:;
  7767.         case 59:;
  7768.         case 60:;
  7769.         case 62:;
  7770.         case 63:;
  7771.         case 64:;
  7772.         case 65:;
  7773.         case 66:;
  7774.         case 67:;
  7775.         case 68:;
  7776.         case 69:;
  7777.         case 70:;
  7778.         case 71:;
  7779.         case 72:;
  7780.         case 73:;
  7781.         case 74:;
  7782.         case 75:;
  7783.         case 77:;
  7784.         case 78:;
  7785.         case 79:;
  7786.         case 80:;
  7787.         case 81:;
  7788.         case 82:;
  7789.         case 83:;
  7790.         case 84:;
  7791.         case 85:;
  7792.         case 86:;
  7793.         case 87:;
  7794.         case 88:;
  7795.         case 89:;
  7796.         case 90:;
  7797.         case 91:;
  7798.         case 92:;
  7799.         case 93:;
  7800.         case 94:;
  7801.         case 95:;
  7802.         default:
  7803.           if (xxIsRepairMode) {
  7804.             if (xxToken != 18 /* ')' */)
  7805.               xxRecoveryLiteral (18, 183, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7806.             else {
  7807.               xxToken =             EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7808.             }
  7809.             for (;;) {
  7810.               switch (xxToken) {
  7811.               case 10 /* '.' */ :; 
  7812.                 xxToken =                 EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7813.                 xxUnion.xxLocalRecoverySet = 105; yyCall_chain (& Call_chain1, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7814.                 xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound1, & xxUnion); /*  */
  7815. /* line 794 "eiffel_mey.ell" */
  7816.  Keys_or_qual_call0->Tree = mDebug(mnolist(), mCompound1(mCall(String1.Tree, 
  7817.                             Call_chain1.Tree), ReverseTree(One_compound1.Tree)) );  
  7818.                 goto xx35;
  7819.               case 7 /* ';' */ :; 
  7820.               case 11 /* '!' */ :; 
  7821.               case 12 /* '!!' */ :; 
  7822.               case 17 /* '(' */ :; 
  7823.               case 41 /* 'check' */ :; 
  7824.               case 44 /* Current */ :; 
  7825.               case 45 /* 'debug' */ :; 
  7826.               case 51 /* 'end' */ :; 
  7827.               case 58 /* 'from' */ :; 
  7828.               case 60 /* 'if' */ :; 
  7829.               case 65 /* 'inspect' */ :; 
  7830.               case 83 /* Result */ :; 
  7831.               case 84 /* retry */ :; 
  7832.               case 106 /* Id */ :; 
  7833.                 xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /*  */
  7834. /* line 798 "eiffel_mey.ell" */
  7835.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); 
  7836.                 goto xx35;
  7837.               case 8:;
  7838.               case 9:;
  7839.               case 13:;
  7840.               case 14:;
  7841.               case 15:;
  7842.               case 16:;
  7843.               case 18:;
  7844.               case 19:;
  7845.               case 20:;
  7846.               case 21:;
  7847.               case 22:;
  7848.               case 23:;
  7849.               case 24:;
  7850.               case 25:;
  7851.               case 26:;
  7852.               case 27:;
  7853.               case 28:;
  7854.               case 29:;
  7855.               case 30:;
  7856.               case 31:;
  7857.               case 32:;
  7858.               case 33:;
  7859.               case 34:;
  7860.               case 35:;
  7861.               case 36:;
  7862.               case 37:;
  7863.               case 38:;
  7864.               case 39:;
  7865.               case 40:;
  7866.               case 42:;
  7867.               case 43:;
  7868.               case 46:;
  7869.               case 47:;
  7870.               case 48:;
  7871.               case 49:;
  7872.               case 50:;
  7873.               case 52:;
  7874.               case 53:;
  7875.               case 54:;
  7876.               case 55:;
  7877.               case 56:;
  7878.               case 57:;
  7879.               case 59:;
  7880.               case 61:;
  7881.               case 62:;
  7882.               case 63:;
  7883.               case 64:;
  7884.               case 66:;
  7885.               case 67:;
  7886.               case 68:;
  7887.               case 69:;
  7888.               case 70:;
  7889.               case 71:;
  7890.               case 72:;
  7891.               case 73:;
  7892.               case 74:;
  7893.               case 75:;
  7894.               case 76:;
  7895.               case 77:;
  7896.               case 78:;
  7897.               case 79:;
  7898.               case 80:;
  7899.               case 81:;
  7900.               case 82:;
  7901.               case 85:;
  7902.               case 86:;
  7903.               case 87:;
  7904.               case 88:;
  7905.               case 89:;
  7906.               case 90:;
  7907.               case 91:;
  7908.               case 92:;
  7909.               case 93:;
  7910.               case 94:;
  7911.               case 95:;
  7912.               case 96:;
  7913.               case 97:;
  7914.               case 98:;
  7915.               case 99:;
  7916.               case 100:;
  7917.               case 101:;
  7918.               case 102:;
  7919.               case 103:;
  7920.               case 104:;
  7921.               case 105:;
  7922.               default:
  7923.                 if (xxIsRepairMode) {
  7924.                   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound2, & xxUnion); /*  */
  7925. /* line 798 "eiffel_mey.ell" */
  7926.  Keys_or_qual_call0->Tree = mDebug(mlist(String1.Tree, mnolist()), ReverseTree(Compound2.Tree)); 
  7927.                   goto xx35;
  7928.                 }
  7929. xxUnexpected (184, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7930.               }
  7931.             }
  7932.             xx35:;
  7933.             goto xx33;
  7934.           }
  7935.           xxExpected (180, 180, xxGlobalRecoverySet); /*  Free_op ',' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op ',' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  7936.         }
  7937.       }
  7938.       xx33:;
  7939.       goto xx32;
  7940.     case 1 /* Character_constant */ :; 
  7941.     case 2 /* Bit_sequence */ :; 
  7942.     case 3 /* Integer */ :; 
  7943.     case 4 /* Real */ :; 
  7944.     case 6 /* Free_op */ :; 
  7945.     case 17 /* '(' */ :; 
  7946.     case 23 /* '<<' */ :; 
  7947.     case 29 /* plus */ :; 
  7948.     case 30 /* minus */ :; 
  7949.     case 44 /* Current */ :; 
  7950.     case 56 /* false */ :; 
  7951.     case 74 /* 'old' */ :; 
  7952.     case 83 /* Result */ :; 
  7953.     case 88 /* 'strip' */ :; 
  7954.     case 90 /* true */ :; 
  7955.     case 105 /* not */ :; 
  7956.     case 106 /* Id */ :; 
  7957.       xxUnion.xxLocalRecoverySet = 183; yyExpression (& Expression1, & xxUnion); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7958.       if (xxToken != 18 /* ')' */)
  7959.         xxRecoveryLiteral (18, 183, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7960.       else {
  7961.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7962.       }
  7963.       if (xxToken != 10 /* '.' */)
  7964.         xxRecoveryLiteral (10, 184, xxGlobalRecoverySet); /*  ';' '.' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7965.       else {
  7966.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7967.       }
  7968.       xxUnion.xxLocalRecoverySet = 105; yyCall_chain (& Call_chain3, & xxUnion); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  7969.       xxUnion.xxLocalRecoverySet = 0; yyOne_compound (& One_compound3, & xxUnion); /*  */
  7970. /* line 810 "eiffel_mey.ell" */
  7971.  Keys_or_qual_call0->Tree = mDebug(mnolist(),mCompound1(mCall( Expression1.Tree
  7972.                             , Call_chain3.Tree), ReverseTree(One_compound3.Tree))); 
  7973.       goto xx32;
  7974.     case 18 /* ')' */ :; 
  7975.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  7976.       xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound3, & xxUnion); /*  */
  7977. /* line 814 "eiffel_mey.ell" */
  7978.  Keys_or_qual_call0->Tree = mDebug(mnolist(), ReverseTree(Compound3.Tree));        
  7979.       goto xx32;
  7980.     case 7:;
  7981.     case 8:;
  7982.     case 9:;
  7983.     case 10:;
  7984.     case 11:;
  7985.     case 12:;
  7986.     case 13:;
  7987.     case 14:;
  7988.     case 15:;
  7989.     case 16:;
  7990.     case 19:;
  7991.     case 20:;
  7992.     case 21:;
  7993.     case 22:;
  7994.     case 24:;
  7995.     case 25:;
  7996.     case 26:;
  7997.     case 27:;
  7998.     case 28:;
  7999.     case 31:;
  8000.     case 32:;
  8001.     case 33:;
  8002.     case 34:;
  8003.     case 35:;
  8004.     case 36:;
  8005.     case 37:;
  8006.     case 38:;
  8007.     case 39:;
  8008.     case 40:;
  8009.     case 41:;
  8010.     case 42:;
  8011.     case 43:;
  8012.     case 45:;
  8013.     case 46:;
  8014.     case 47:;
  8015.     case 48:;
  8016.     case 49:;
  8017.     case 50:;
  8018.     case 51:;
  8019.     case 52:;
  8020.     case 53:;
  8021.     case 54:;
  8022.     case 55:;
  8023.     case 57:;
  8024.     case 58:;
  8025.     case 59:;
  8026.     case 60:;
  8027.     case 61:;
  8028.     case 62:;
  8029.     case 63:;
  8030.     case 64:;
  8031.     case 65:;
  8032.     case 66:;
  8033.     case 67:;
  8034.     case 68:;
  8035.     case 69:;
  8036.     case 70:;
  8037.     case 71:;
  8038.     case 72:;
  8039.     case 73:;
  8040.     case 75:;
  8041.     case 76:;
  8042.     case 77:;
  8043.     case 78:;
  8044.     case 79:;
  8045.     case 80:;
  8046.     case 81:;
  8047.     case 82:;
  8048.     case 84:;
  8049.     case 85:;
  8050.     case 86:;
  8051.     case 87:;
  8052.     case 89:;
  8053.     case 91:;
  8054.     case 92:;
  8055.     case 93:;
  8056.     case 94:;
  8057.     case 95:;
  8058.     case 96:;
  8059.     case 97:;
  8060.     case 98:;
  8061.     case 99:;
  8062.     case 100:;
  8063.     case 101:;
  8064.     case 102:;
  8065.     case 103:;
  8066.     case 104:;
  8067.     default:
  8068.       if (xxIsRepairMode) {
  8069.         if (xxToken != 18 /* ')' */)
  8070.           xxRecoveryLiteral (18, 182, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' ')' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  8071.         else {
  8072.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8073.         }
  8074.         xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound3, & xxUnion); /*  */
  8075. /* line 814 "eiffel_mey.ell" */
  8076.  Keys_or_qual_call0->Tree = mDebug(mnolist(), ReverseTree(Compound3.Tree));        
  8077.         goto xx32;
  8078.       }
  8079.       xxExpected (179, 179, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  8080.     }
  8081.   }
  8082.   xx32:;
  8083. }
  8084.  
  8085. static void yyString
  8086. # if defined __STDC__ | defined __cplusplus
  8087. (ParserMEY_tParsAttribute * String0, xxtUnionPtr xxGlobalRecoverySet)
  8088. # else
  8089. (String0, xxGlobalRecoverySet)
  8090. ParserMEY_tParsAttribute    * String0;
  8091. xxtUnionPtr    xxGlobalRecoverySet;
  8092. # endif
  8093. {
  8094.     EiffelScan_tScanAttribute Manifest_string1;
  8095.   if (xxToken != 5 /* Manifest_string */)
  8096.     xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string */
  8097.   else {
  8098.     Manifest_string1 =   EiffelScan_Attribute;
  8099.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8100.   }
  8101. /* line 820 "eiffel_mey.ell" */
  8102.  String0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position);     
  8103. }
  8104.  
  8105. static void yyString_list
  8106. # if defined __STDC__ | defined __cplusplus
  8107. (ParserMEY_tParsAttribute * String_list0, xxtUnionPtr xxGlobalRecoverySet)
  8108. # else
  8109. (String_list0, xxGlobalRecoverySet)
  8110. ParserMEY_tParsAttribute    * String_list0;
  8111. xxtUnionPtr    xxGlobalRecoverySet;
  8112. # endif
  8113. {
  8114.     EiffelScan_tScanAttribute Manifest_string1;
  8115. /* line 823 "eiffel_mey.ell" */
  8116.  String_list0->Tree = mnolist();                            
  8117.   for (;;) {
  8118.     if (xxToken != 5 /* Manifest_string */)
  8119.       xxRecoveryTerminal (5, 185, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string ',' */
  8120.     else {
  8121.       Manifest_string1 =     EiffelScan_Attribute;
  8122.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8123.     }
  8124. /* line 824 "eiffel_mey.ell" */
  8125.  String_list0->Tree = mlist(mString(Manifest_string1.StringRef, Manifest_string1.Position),
  8126.                                             String_list0->Tree);    
  8127.     if (! ((xxToken == 8 /* ',' */))) {
  8128.       if ((xxToken == 18 /* ')' */)) break;
  8129.       xxExpected (16, 185, xxGlobalRecoverySet); /*  ',' /  Manifest_string ',' */
  8130.       if (! ((xxToken == 8 /* ',' */) || (xxToken == 5 /* Manifest_string */))) break;
  8131.     }
  8132.     if (xxToken != 8 /* ',' */)
  8133.       xxRecoveryLiteral (8, 185, xxGlobalRecoverySet); /*  Manifest_string ',' */
  8134.     else {
  8135.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8136.     }
  8137.   }
  8138. /* line 826 "eiffel_mey.ell" */
  8139.  String_list0->Tree = ReverseTree(String_list0->Tree);                    
  8140. }
  8141.  
  8142. static void yyOne_compound
  8143. # if defined __STDC__ | defined __cplusplus
  8144. (ParserMEY_tParsAttribute * One_compound0, xxtUnionPtr xxGlobalRecoverySet)
  8145. # else
  8146. (One_compound0, xxGlobalRecoverySet)
  8147. ParserMEY_tParsAttribute    * One_compound0;
  8148. xxtUnionPtr    xxGlobalRecoverySet;
  8149. # endif
  8150. {
  8151.   ParserMEY_tParsAttribute Instruction1;
  8152.   xxtUnion xxUnion;
  8153.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8154. /* line 830 "eiffel_mey.ell" */
  8155.  One_compound0->Tree = mCompound0();                                                   
  8156.   for (;;) {
  8157.     if ((xxVerticalSet [xxToken + 648] & 1 << 3 /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */)) {
  8158.       for (;;) {
  8159.         if ((xxToken == 7 /* ';' */)) {
  8160.           xxToken =           EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8161.           break;
  8162.         } else if ((xxVerticalSet [xxToken + 648] & 1 << 3 /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */) || xxIsRepairMode) break;
  8163.         xxExpected (105, 105, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  8164.       }
  8165.       xxUnion.xxLocalRecoverySet = 0; yyInstruction (& Instruction1, & xxUnion); /*  */
  8166. /* line 831 "eiffel_mey.ell" */
  8167.  One_compound0->Tree = mCompound1(Instruction1.Tree, One_compound0->Tree);         
  8168.     } else if ((xxToken == 51 /* 'end' */) || xxIsRepairMode) break;
  8169.     else
  8170.       xxExpected (105, 105, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id /  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' Result retry Id */
  8171.   }
  8172. }
  8173.  
  8174. static void yyRescue
  8175. # if defined __STDC__ | defined __cplusplus
  8176. (ParserMEY_tParsAttribute * Rescue0, xxtUnionPtr xxGlobalRecoverySet)
  8177. # else
  8178. (Rescue0, xxGlobalRecoverySet)
  8179. ParserMEY_tParsAttribute    * Rescue0;
  8180. xxtUnionPtr    xxGlobalRecoverySet;
  8181. # endif
  8182. {
  8183.   ParserMEY_tParsAttribute Compound1;
  8184.   xxtUnion xxUnion;
  8185.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8186.   if (xxToken != 82 /* 'rescue' */)
  8187.     xxRecoveryLiteral (82, 186, xxGlobalRecoverySet); /*  ';' '!' '!!' '(' 'check' Current 'debug' 'from' 'if' 'inspect' 'rescue' Result retry Id */
  8188.   else {
  8189.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8190.   }
  8191.   xxUnion.xxLocalRecoverySet = 0; yyCompound (& Compound1, & xxUnion); /*  */
  8192. /* line 836 "eiffel_mey.ell" */
  8193.  Rescue0->Tree = ReverseTree(Compound1.Tree);                        
  8194. }
  8195.  
  8196. static void yyRetry
  8197. # if defined __STDC__ | defined __cplusplus
  8198. (ParserMEY_tParsAttribute * Retry0, xxtUnionPtr xxGlobalRecoverySet)
  8199. # else
  8200. (Retry0, xxGlobalRecoverySet)
  8201. ParserMEY_tParsAttribute    * Retry0;
  8202. xxtUnionPtr    xxGlobalRecoverySet;
  8203. # endif
  8204. {
  8205.     EiffelScan_tScanAttribute retry1;
  8206.   if (xxToken != 84 /* retry */)
  8207.     xxRecoveryTerminal (84, 187, xxGlobalRecoverySet, & retry1); /*  retry */
  8208.   else {
  8209.     retry1 =   EiffelScan_Attribute;
  8210.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8211.   }
  8212. /* line 839 "eiffel_mey.ell" */
  8213.  Retry0->Tree = mRetry(retry1.Position);                        
  8214. }
  8215.  
  8216. static void yyUnique
  8217. # if defined __STDC__ | defined __cplusplus
  8218. (ParserMEY_tParsAttribute * Unique0, xxtUnionPtr xxGlobalRecoverySet)
  8219. # else
  8220. (Unique0, xxGlobalRecoverySet)
  8221. ParserMEY_tParsAttribute    * Unique0;
  8222. xxtUnionPtr    xxGlobalRecoverySet;
  8223. # endif
  8224. {
  8225.     EiffelScan_tScanAttribute unique1;
  8226.   if (xxToken != 92 /* unique */)
  8227.     xxRecoveryTerminal (92, 188, xxGlobalRecoverySet, & unique1); /*  unique */
  8228.   else {
  8229.     unique1 =   EiffelScan_Attribute;
  8230.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8231.   }
  8232. /* line 844 "eiffel_mey.ell" */
  8233.  Unique0->Tree = mUnique(unique1.Position);                        
  8234. }
  8235.  
  8236. static void yyEntity
  8237. # if defined __STDC__ | defined __cplusplus
  8238. (ParserMEY_tParsAttribute * Entity0, xxtUnionPtr xxGlobalRecoverySet)
  8239. # else
  8240. (Entity0, xxGlobalRecoverySet)
  8241. ParserMEY_tParsAttribute    * Entity0;
  8242. xxtUnionPtr    xxGlobalRecoverySet;
  8243. # endif
  8244. {
  8245.     EiffelScan_tScanAttribute Current1;
  8246.   ParserMEY_tParsAttribute Writable1;
  8247.   xxtUnion xxUnion;
  8248.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8249.   for (;;) {
  8250.     switch (xxToken) {
  8251.     case 83 /* Result */ :; 
  8252.     case 106 /* Id */ :; 
  8253.       xxUnion.xxLocalRecoverySet = 0; yyWritable (& Writable1, & xxUnion); /*  */
  8254. /* line 849 "eiffel_mey.ell" */
  8255.  Entity0->Tree = Writable1.Tree;                            
  8256.       goto xx36;
  8257.     case 44 /* Current */ :; 
  8258.       Current1 =       EiffelScan_Attribute;
  8259.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8260. /* line 850 "eiffel_mey.ell" */
  8261.  Entity0->Tree = mCurrent(Current1.Position);                        
  8262.       goto xx36;
  8263.     case 45:;
  8264.     case 46:;
  8265.     case 47:;
  8266.     case 48:;
  8267.     case 49:;
  8268.     case 50:;
  8269.     case 51:;
  8270.     case 52:;
  8271.     case 53:;
  8272.     case 54:;
  8273.     case 55:;
  8274.     case 56:;
  8275.     case 57:;
  8276.     case 58:;
  8277.     case 59:;
  8278.     case 60:;
  8279.     case 61:;
  8280.     case 62:;
  8281.     case 63:;
  8282.     case 64:;
  8283.     case 65:;
  8284.     case 66:;
  8285.     case 67:;
  8286.     case 68:;
  8287.     case 69:;
  8288.     case 70:;
  8289.     case 71:;
  8290.     case 72:;
  8291.     case 73:;
  8292.     case 74:;
  8293.     case 75:;
  8294.     case 76:;
  8295.     case 77:;
  8296.     case 78:;
  8297.     case 79:;
  8298.     case 80:;
  8299.     case 81:;
  8300.     case 82:;
  8301.     case 84:;
  8302.     case 85:;
  8303.     case 86:;
  8304.     case 87:;
  8305.     case 88:;
  8306.     case 89:;
  8307.     case 90:;
  8308.     case 91:;
  8309.     case 92:;
  8310.     case 93:;
  8311.     case 94:;
  8312.     case 95:;
  8313.     case 96:;
  8314.     case 97:;
  8315.     case 98:;
  8316.     case 99:;
  8317.     case 100:;
  8318.     case 101:;
  8319.     case 102:;
  8320.     case 103:;
  8321.     case 104:;
  8322.     case 105:;
  8323.     default:
  8324.       if (xxIsRepairMode) {
  8325.         xxUnion.xxLocalRecoverySet = 0; yyWritable (& Writable1, & xxUnion); /*  */
  8326. /* line 849 "eiffel_mey.ell" */
  8327.  Entity0->Tree = Writable1.Tree;                            
  8328.         goto xx36;
  8329.       }
  8330.       xxExpected (189, 189, xxGlobalRecoverySet); /*  Current Result Id /  Current Result Id */
  8331.     }
  8332.   }
  8333.   xx36:;
  8334. }
  8335.  
  8336. static void yyWritable
  8337. # if defined __STDC__ | defined __cplusplus
  8338. (ParserMEY_tParsAttribute * Writable0, xxtUnionPtr xxGlobalRecoverySet)
  8339. # else
  8340. (Writable0, xxGlobalRecoverySet)
  8341. ParserMEY_tParsAttribute    * Writable0;
  8342. xxtUnionPtr    xxGlobalRecoverySet;
  8343. # endif
  8344. {
  8345.   ParserMEY_tParsAttribute Attribute1;
  8346.   ParserMEY_tParsAttribute Local1;
  8347.   xxtUnion xxUnion;
  8348.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8349.   for (;;) {
  8350.     switch (xxToken) {
  8351.     case 106 /* Id */ :; 
  8352.       xxUnion.xxLocalRecoverySet = 0; yyAttribute (& Attribute1, & xxUnion); /*  */
  8353. /* line 854 "eiffel_mey.ell" */
  8354.  Writable0->Tree = Attribute1.Tree;                            
  8355.       goto xx37;
  8356.     case 83 /* Result */ :; 
  8357.       xxUnion.xxLocalRecoverySet = 0; yyLocal (& Local1, & xxUnion); /*  */
  8358. /* line 855 "eiffel_mey.ell" */
  8359.  Writable0->Tree = Local1.Tree;                            
  8360.       goto xx37;
  8361.     case 84:;
  8362.     case 85:;
  8363.     case 86:;
  8364.     case 87:;
  8365.     case 88:;
  8366.     case 89:;
  8367.     case 90:;
  8368.     case 91:;
  8369.     case 92:;
  8370.     case 93:;
  8371.     case 94:;
  8372.     case 95:;
  8373.     case 96:;
  8374.     case 97:;
  8375.     case 98:;
  8376.     case 99:;
  8377.     case 100:;
  8378.     case 101:;
  8379.     case 102:;
  8380.     case 103:;
  8381.     case 104:;
  8382.     case 105:;
  8383.     default:
  8384.       if (xxIsRepairMode) {
  8385.         xxUnion.xxLocalRecoverySet = 0; yyAttribute (& Attribute1, & xxUnion); /*  */
  8386. /* line 854 "eiffel_mey.ell" */
  8387.  Writable0->Tree = Attribute1.Tree;                            
  8388.         goto xx37;
  8389.       }
  8390.       xxExpected (190, 190, xxGlobalRecoverySet); /*  Result Id /  Result Id */
  8391.     }
  8392.   }
  8393.   xx37:;
  8394. }
  8395.  
  8396. static void yyAttribute
  8397. # if defined __STDC__ | defined __cplusplus
  8398. (ParserMEY_tParsAttribute * Attribute0, xxtUnionPtr xxGlobalRecoverySet)
  8399. # else
  8400. (Attribute0, xxGlobalRecoverySet)
  8401. ParserMEY_tParsAttribute    * Attribute0;
  8402. xxtUnionPtr    xxGlobalRecoverySet;
  8403. # endif
  8404. {
  8405.   ParserMEY_tParsAttribute Identifier1;
  8406.   xxtUnion xxUnion;
  8407.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8408.   xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  8409. /* line 858 "eiffel_mey.ell" */
  8410.  Attribute0->Tree = Identifier1.Tree;                            
  8411. }
  8412.  
  8413. static void yyLocal
  8414. # if defined __STDC__ | defined __cplusplus
  8415. (ParserMEY_tParsAttribute * Local0, xxtUnionPtr xxGlobalRecoverySet)
  8416. # else
  8417. (Local0, xxGlobalRecoverySet)
  8418. ParserMEY_tParsAttribute    * Local0;
  8419. xxtUnionPtr    xxGlobalRecoverySet;
  8420. # endif
  8421. {
  8422.     EiffelScan_tScanAttribute Result1;
  8423.   ParserMEY_tParsAttribute Identifier1;
  8424.   xxtUnion xxUnion;
  8425.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8426.   for (;;) {
  8427.     switch (xxToken) {
  8428.     case 106 /* Id */ :; 
  8429.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  8430. /* line 861 "eiffel_mey.ell" */
  8431.  Local0->Tree = Identifier1.Tree;                            
  8432.       goto xx38;
  8433.     case 83 /* Result */ :; 
  8434.       Result1 =       EiffelScan_Attribute;
  8435.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8436. /* line 862 "eiffel_mey.ell" */
  8437.  Local0->Tree = mResult(Result1.Position);                        
  8438.       goto xx38;
  8439.     case 84:;
  8440.     case 85:;
  8441.     case 86:;
  8442.     case 87:;
  8443.     case 88:;
  8444.     case 89:;
  8445.     case 90:;
  8446.     case 91:;
  8447.     case 92:;
  8448.     case 93:;
  8449.     case 94:;
  8450.     case 95:;
  8451.     case 96:;
  8452.     case 97:;
  8453.     case 98:;
  8454.     case 99:;
  8455.     case 100:;
  8456.     case 101:;
  8457.     case 102:;
  8458.     case 103:;
  8459.     case 104:;
  8460.     case 105:;
  8461.     default:
  8462.       if (xxIsRepairMode) {
  8463.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  8464. /* line 861 "eiffel_mey.ell" */
  8465.  Local0->Tree = Identifier1.Tree;                            
  8466.         goto xx38;
  8467.       }
  8468.       xxExpected (190, 190, xxGlobalRecoverySet); /*  Result Id /  Result Id */
  8469.     }
  8470.   }
  8471.   xx38:;
  8472. }
  8473.  
  8474. static void yyCreators
  8475. # if defined __STDC__ | defined __cplusplus
  8476. (ParserMEY_tParsAttribute * Creators0, xxtUnionPtr xxGlobalRecoverySet)
  8477. # else
  8478. (Creators0, xxGlobalRecoverySet)
  8479. ParserMEY_tParsAttribute    * Creators0;
  8480. xxtUnionPtr    xxGlobalRecoverySet;
  8481. # endif
  8482. {
  8483.   ParserMEY_tParsAttribute Creation_clause1;
  8484.   xxtUnion xxUnion;
  8485.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8486. /* line 872 "eiffel_mey.ell" */
  8487.  Creators0->Tree = mCreators0();                            
  8488.   if (xxToken != 43 /* 'creation' */)
  8489.     xxRecoveryLiteral (43, 192, xxGlobalRecoverySet); /*  '{' 'creation' infix prefix Id */
  8490.   else {
  8491.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8492.   }
  8493.   for (;;) {
  8494.     xxUnion.xxLocalRecoverySet = 193; yyCreation_clause (& Creation_clause1, & xxUnion); /*  'creation' */
  8495. /* line 874 "eiffel_mey.ell" */
  8496.  Creators0->Tree = mCreators1(Creation_clause1.Tree, Creators0->Tree);            
  8497.     if (! ((xxToken == 43 /* 'creation' */))) {
  8498.       if ((xxVerticalSet [xxToken] & 1 << 5 /*  'end' 'feature' 'invariant' */)) break;
  8499.       xxExpected (193, 192, xxGlobalRecoverySet); /*  'creation' /  '{' 'creation' infix prefix Id */
  8500.       if (! ((xxToken == 43 /* 'creation' */) || (xxVerticalSet [xxToken + 756] & 1 << 3 /*  '{' 'creation' infix prefix Id */))) break;
  8501.     }
  8502.     if (xxToken != 43 /* 'creation' */)
  8503.       xxRecoveryLiteral (43, 192, xxGlobalRecoverySet); /*  '{' 'creation' infix prefix Id */
  8504.     else {
  8505.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8506.     }
  8507.   }
  8508. }
  8509.  
  8510. static void yyCreation_clause
  8511. # if defined __STDC__ | defined __cplusplus
  8512. (ParserMEY_tParsAttribute * Creation_clause0, xxtUnionPtr xxGlobalRecoverySet)
  8513. # else
  8514. (Creation_clause0, xxGlobalRecoverySet)
  8515. ParserMEY_tParsAttribute    * Creation_clause0;
  8516. xxtUnionPtr    xxGlobalRecoverySet;
  8517. # endif
  8518. {
  8519.   ParserMEY_tParsAttribute Clients1;
  8520.   ParserMEY_tParsAttribute Feature_list1;
  8521.   xxtUnion xxUnion;
  8522.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8523. /* line 878 "eiffel_mey.ell" */
  8524.  Creation_clause0->Tree = mCreation_clause(mClients0(), no_comment, mFeature_list0());    
  8525.   for (;;) {
  8526.     if ((xxToken == 21 /* '{' */)) {
  8527.       xxUnion.xxLocalRecoverySet = 36; yyClients (& Clients1, & xxUnion); /*  infix prefix Id */
  8528. /* line 879 "eiffel_mey.ell" */
  8529.  Creation_clause0->Tree->Creation_clause.Clients = Clients1.Tree;            
  8530.       break;
  8531.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 4 /*  'creation' 'end' 'feature' infix 'invariant' prefix Id */) || xxIsRepairMode) break;
  8532.     xxExpected (194, 194, xxGlobalRecoverySet); /*  '{' infix prefix Id /  '{' infix prefix Id */
  8533.   }
  8534. /* line 880 "eiffel_mey.ell" */
  8535.  Creation_clause0->Tree->Creation_clause.comment = comment_ref;             
  8536.   xxUnion.xxLocalRecoverySet = 0; yyFeature_list (& Feature_list1, & xxUnion); /*  */
  8537. /* line 881 "eiffel_mey.ell" */
  8538.  Creation_clause0->Tree->Creation_clause.Feature_list = ReverseTree(Feature_list1.Tree);
  8539. }
  8540.  
  8541. static void yyCreation
  8542. # if defined __STDC__ | defined __cplusplus
  8543. (ParserMEY_tParsAttribute * Creation0, xxtUnionPtr xxGlobalRecoverySet)
  8544. # else
  8545. (Creation0, xxGlobalRecoverySet)
  8546. ParserMEY_tParsAttribute    * Creation0;
  8547. xxtUnionPtr    xxGlobalRecoverySet;
  8548. # endif
  8549. {
  8550.   ParserMEY_tParsAttribute Type1;
  8551.   ParserMEY_tParsAttribute Writable1;
  8552.   ParserMEY_tParsAttribute Creation_call1;
  8553.   xxtUnion xxUnion;
  8554.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8555. /* line 885 "eiffel_mey.ell" */
  8556.  Creation0->Tree = mCreation(mType0(), mEntity0(NoPosition), mUnqual_call0());        
  8557.   for (;;) {
  8558.     switch (xxToken) {
  8559.     case 11 /* '!' */ :; 
  8560.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8561.       for (;;) {
  8562.         if ((xxVerticalSet [xxToken + 648] & 1 << 1 /*  BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id */)) {
  8563.           xxUnion.xxLocalRecoverySet = 197; yyType (& Type1, & xxUnion); /*  '.' '!' Result Id */
  8564. /* line 886 "eiffel_mey.ell" */
  8565.  Creation0->Tree->Creation.Type = Type1.Tree;                        
  8566.           break;
  8567.         } else if ((xxToken == 11 /* '!' */) || xxIsRepairMode) break;
  8568.         xxExpected (196, 195, xxGlobalRecoverySet); /*  '!' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL STRING Id /  '.' '!' BIT BOOLEAN CHARACTER DOUBLE expanded INTEGER 'like' _NONE REAL Result STRING Id */
  8569.       }
  8570.       if (xxToken != 11 /* '!' */)
  8571.         xxRecoveryLiteral (11, 197, xxGlobalRecoverySet); /*  '.' '!' Result Id */
  8572.       else {
  8573.         xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8574.       }
  8575.       goto xx39;
  8576.     case 12 /* '!!' */ :; 
  8577.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8578.       goto xx39;
  8579.     default:
  8580.       if (xxIsRepairMode) {
  8581.         if (xxToken != 12 /* '!!' */)
  8582.           xxRecoveryLiteral (12, 198, xxGlobalRecoverySet); /*  '.' '!!' Result Id */
  8583.         else {
  8584.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8585.         }
  8586.         goto xx39;
  8587.       }
  8588.       xxExpected (199, 200, xxGlobalRecoverySet); /*  '!' '!!' Result Id /  '.' '!' '!!' Result Id */
  8589.     }
  8590.   }
  8591.   xx39:;
  8592.   xxUnion.xxLocalRecoverySet = 108; yyWritable (& Writable1, & xxUnion); /*  '.' */
  8593. /* line 887 "eiffel_mey.ell" */
  8594.  Creation0->Tree->Creation.Entity = Writable1.Tree;                
  8595.   for (;;) {
  8596.     if ((xxToken == 10 /* '.' */)) {
  8597.       xxUnion.xxLocalRecoverySet = 0; yyCreation_call (& Creation_call1, & xxUnion); /*  */
  8598. /* line 888 "eiffel_mey.ell" */
  8599.  Creation0->Tree->Creation.Unqual_call = Creation_call1.Tree;                
  8600.       break;
  8601.     } else if ((xxVerticalSet [xxToken + 432] & 1 << 4 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' '!' '!!' '(' '<<' plus minus 'check' Current 'debug' else 'elseif' 'end' 'ensure' false 'from' 'if' 'inspect' 'invariant' 'old' 'rescue' Result retry 'strip' true 'until' 'variant' 'when' not Id */) || xxIsRepairMode) break;
  8602.     xxExpected (108, 108, xxGlobalRecoverySet); /*  '.' /  '.' */
  8603.   }
  8604. }
  8605.  
  8606. static void yyCreation_call
  8607. # if defined __STDC__ | defined __cplusplus
  8608. (ParserMEY_tParsAttribute * Creation_call0, xxtUnionPtr xxGlobalRecoverySet)
  8609. # else
  8610. (Creation_call0, xxGlobalRecoverySet)
  8611. ParserMEY_tParsAttribute    * Creation_call0;
  8612. xxtUnionPtr    xxGlobalRecoverySet;
  8613. # endif
  8614. {
  8615.   ParserMEY_tParsAttribute Unqualified_call1;
  8616.   xxtUnion xxUnion;
  8617.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8618.   if (xxToken != 10 /* '.' */)
  8619.     xxRecoveryLiteral (10, 109, xxGlobalRecoverySet); /*  '.' Current Result Id */
  8620.   else {
  8621.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8622.   }
  8623.   xxUnion.xxLocalRecoverySet = 0; yyUnqualified_call (& Unqualified_call1, & xxUnion); /*  */
  8624. /* line 892 "eiffel_mey.ell" */
  8625.  Creation_call0->Tree = Unqualified_call1.Tree;                    
  8626. }
  8627.  
  8628. static void yyQualified_call
  8629. # if defined __STDC__ | defined __cplusplus
  8630. (ParserMEY_tParsAttribute * Qualified_call0, xxtUnionPtr xxGlobalRecoverySet)
  8631. # else
  8632. (Qualified_call0, xxGlobalRecoverySet)
  8633. ParserMEY_tParsAttribute    * Qualified_call0;
  8634. xxtUnionPtr    xxGlobalRecoverySet;
  8635. # endif
  8636. {
  8637.   ParserMEY_tParsAttribute Call_chain1;
  8638.   ParserMEY_tParsAttribute Parenthesized_qualifier1;
  8639.   xxtUnion xxUnion;
  8640.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8641.   xxUnion.xxLocalRecoverySet = 189; yyParenthesized_qualifier (& Parenthesized_qualifier1, & xxUnion); /*  Current Result Id */
  8642.   xxUnion.xxLocalRecoverySet = 0; yyCall_chain (& Call_chain1, & xxUnion); /*  */
  8643. /* line 897 "eiffel_mey.ell" */
  8644.  Qualified_call0->Tree = mCall_instruct(mCall( Parenthesized_qualifier1.Tree,
  8645.                                              Call_chain1.Tree));    
  8646. }
  8647.  
  8648. static void yyParenthesized_qualifier
  8649. # if defined __STDC__ | defined __cplusplus
  8650. (ParserMEY_tParsAttribute * Parenthesized_qualifier0, xxtUnionPtr xxGlobalRecoverySet)
  8651. # else
  8652. (Parenthesized_qualifier0, xxGlobalRecoverySet)
  8653. ParserMEY_tParsAttribute    * Parenthesized_qualifier0;
  8654. xxtUnionPtr    xxGlobalRecoverySet;
  8655. # endif
  8656. {
  8657.   ParserMEY_tParsAttribute Expression1;
  8658.   xxtUnion xxUnion;
  8659.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8660.   if (xxToken != 17 /* '(' */)
  8661.     xxRecoveryLiteral (17, 201, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '.' '(' ')' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  8662.   else {
  8663.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8664.   }
  8665.   xxUnion.xxLocalRecoverySet = 202; yyExpression (& Expression1, & xxUnion); /*  '.' ')' */
  8666.   if (xxToken != 18 /* ')' */)
  8667.     xxRecoveryLiteral (18, 202, xxGlobalRecoverySet); /*  '.' ')' */
  8668.   else {
  8669.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8670.   }
  8671.   if (xxToken != 10 /* '.' */)
  8672.     xxRecoveryLiteral (10, 108, xxGlobalRecoverySet); /*  '.' */
  8673.   else {
  8674.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8675.   }
  8676. /* line 902 "eiffel_mey.ell" */
  8677.  Parenthesized_qualifier0->Tree = Expression1.Tree;                    
  8678. }
  8679.  
  8680. static void yyCall_chain
  8681. # if defined __STDC__ | defined __cplusplus
  8682. (ParserMEY_tParsAttribute * Call_chain0, xxtUnionPtr xxGlobalRecoverySet)
  8683. # else
  8684. (Call_chain0, xxGlobalRecoverySet)
  8685. ParserMEY_tParsAttribute    * Call_chain0;
  8686. xxtUnionPtr    xxGlobalRecoverySet;
  8687. # endif
  8688. {
  8689.   ParserMEY_tParsAttribute Unqualified_call1;
  8690.   xxtUnion xxUnion;
  8691.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8692. /* line 905 "eiffel_mey.ell" */
  8693.  Call_chain0->Tree = mCall_chain0();                            
  8694.   for (;;) {
  8695.     xxUnion.xxLocalRecoverySet = 108; yyUnqualified_call (& Unqualified_call1, & xxUnion); /*  '.' */
  8696. /* line 906 "eiffel_mey.ell" */
  8697.  Call_chain0->Tree = mCall_chain1(Unqualified_call1.Tree, Call_chain0->Tree);        
  8698.     if (! ((xxToken == 10 /* '.' */))) {
  8699.       if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */)) break;
  8700.       xxExpected (109, 109, xxGlobalRecoverySet); /*  '.' Current Result Id /  '.' Current Result Id */
  8701.       if (! ((xxToken == 10 /* '.' */) || (xxVerticalSet [xxToken + 756] & 1 << 5 /*  Current Result Id */))) break;
  8702.     }
  8703.     if (xxToken != 10 /* '.' */)
  8704.       xxRecoveryLiteral (10, 109, xxGlobalRecoverySet); /*  '.' Current Result Id */
  8705.     else {
  8706.       xxToken =     EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8707.     }
  8708.   }
  8709. /* line 907 "eiffel_mey.ell" */
  8710.  Call_chain0->Tree = ReverseTree(Call_chain0->Tree);                    
  8711. }
  8712.  
  8713. static void yyUnqualified_call
  8714. # if defined __STDC__ | defined __cplusplus
  8715. (ParserMEY_tParsAttribute * Unqualified_call0, xxtUnionPtr xxGlobalRecoverySet)
  8716. # else
  8717. (Unqualified_call0, xxGlobalRecoverySet)
  8718. ParserMEY_tParsAttribute    * Unqualified_call0;
  8719. xxtUnionPtr    xxGlobalRecoverySet;
  8720. # endif
  8721. {
  8722.   ParserMEY_tParsAttribute Actuals1;
  8723.   ParserMEY_tParsAttribute Entity1;
  8724.   xxtUnion xxUnion;
  8725.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8726.   xxUnion.xxLocalRecoverySet = 203; yyEntity (& Entity1, & xxUnion); /*  '(' */
  8727. /* line 911 "eiffel_mey.ell" */
  8728.  Unqualified_call0->Tree = mUnqual_call1(Entity1.Tree, mActuals0());            
  8729.   for (;;) {
  8730.     if ((xxToken == 17 /* '(' */)) {
  8731.       xxUnion.xxLocalRecoverySet = 0; yyActuals (& Actuals1, & xxUnion); /*  */
  8732. /* line 912 "eiffel_mey.ell" */
  8733.  Unqualified_call0->Tree->Unqual_call1.Actuals =  Actuals1.Tree;            
  8734.       break;
  8735.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '.' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  8736.     xxExpected (203, 203, xxGlobalRecoverySet); /*  '(' /  '(' */
  8737.   }
  8738. }
  8739.  
  8740. static void yyActuals
  8741. # if defined __STDC__ | defined __cplusplus
  8742. (ParserMEY_tParsAttribute * Actuals0, xxtUnionPtr xxGlobalRecoverySet)
  8743. # else
  8744. (Actuals0, xxGlobalRecoverySet)
  8745. ParserMEY_tParsAttribute    * Actuals0;
  8746. xxtUnionPtr    xxGlobalRecoverySet;
  8747. # endif
  8748. {
  8749.   ParserMEY_tParsAttribute Actual_list1;
  8750.   xxtUnion xxUnion;
  8751.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8752.   if (xxToken != 17 /* '(' */)
  8753.     xxRecoveryLiteral (17, 204, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' ')' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8754.   else {
  8755.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8756.   }
  8757.   xxUnion.xxLocalRecoverySet = 83; yyActual_list (& Actual_list1, & xxUnion); /*  ')' */
  8758.   if (xxToken != 18 /* ')' */)
  8759.     xxRecoveryLiteral (18, 83, xxGlobalRecoverySet); /*  ')' */
  8760.   else {
  8761.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8762.   }
  8763. /* line 917 "eiffel_mey.ell" */
  8764.  Actuals0->Tree = mActuals1(ReverseTree(Actual_list1.Tree));                
  8765. }
  8766.  
  8767. static void yyActual_list
  8768. # if defined __STDC__ | defined __cplusplus
  8769. (ParserMEY_tParsAttribute * Actual_list0, xxtUnionPtr xxGlobalRecoverySet)
  8770. # else
  8771. (Actual_list0, xxGlobalRecoverySet)
  8772. ParserMEY_tParsAttribute    * Actual_list0;
  8773. xxtUnionPtr    xxGlobalRecoverySet;
  8774. # endif
  8775. {
  8776.   ParserMEY_tParsAttribute Actual1;
  8777.   xxtUnion xxUnion;
  8778.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8779. /* line 919 "eiffel_mey.ell" */
  8780.  Actual_list0->Tree = mActual_list0();                            
  8781.   for (;;) {
  8782.     if ((xxVerticalSet [xxToken + 864] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */)) {
  8783.       for (;;) {
  8784.         xxUnion.xxLocalRecoverySet = 16; yyActual (& Actual1, & xxUnion); /*  ',' */
  8785. /* line 920 "eiffel_mey.ell" */
  8786.  Actual_list0->Tree = mActual_list1(Actual1.Tree, Actual_list0->Tree);            
  8787.         if (! ((xxToken == 8 /* ',' */))) {
  8788.           if ((xxToken == 18 /* ')' */)) break;
  8789.           xxExpected (16, 206, xxGlobalRecoverySet); /*  ',' /  Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8790.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 864] & 1 << 0 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */))) break;
  8791.         }
  8792.         if (xxToken != 8 /* ',' */)
  8793.           xxRecoveryLiteral (8, 206, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8794.         else {
  8795.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8796.         }
  8797.       }
  8798.       break;
  8799.     } else if ((xxToken == 18 /* ')' */) || xxIsRepairMode) break;
  8800.     xxExpected (205, 205, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8801.   }
  8802. }
  8803.  
  8804. static void yyActual
  8805. # if defined __STDC__ | defined __cplusplus
  8806. (ParserMEY_tParsAttribute * Actual0, xxtUnionPtr xxGlobalRecoverySet)
  8807. # else
  8808. (Actual0, xxGlobalRecoverySet)
  8809. ParserMEY_tParsAttribute    * Actual0;
  8810. xxtUnionPtr    xxGlobalRecoverySet;
  8811. # endif
  8812. {
  8813.   ParserMEY_tParsAttribute Expression1;
  8814.   ParserMEY_tParsAttribute Address1;
  8815.   xxtUnion xxUnion;
  8816.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8817.   for (;;) {
  8818.     switch (xxToken) {
  8819.     case 1 /* Character_constant */ :; 
  8820.     case 2 /* Bit_sequence */ :; 
  8821.     case 3 /* Integer */ :; 
  8822.     case 4 /* Real */ :; 
  8823.     case 5 /* Manifest_string */ :; 
  8824.     case 6 /* Free_op */ :; 
  8825.     case 17 /* '(' */ :; 
  8826.     case 23 /* '<<' */ :; 
  8827.     case 29 /* plus */ :; 
  8828.     case 30 /* minus */ :; 
  8829.     case 44 /* Current */ :; 
  8830.     case 56 /* false */ :; 
  8831.     case 74 /* 'old' */ :; 
  8832.     case 83 /* Result */ :; 
  8833.     case 88 /* 'strip' */ :; 
  8834.     case 90 /* true */ :; 
  8835.     case 105 /* not */ :; 
  8836.     case 106 /* Id */ :; 
  8837.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  8838. /* line 924 "eiffel_mey.ell" */
  8839.  Actual0->Tree = Expression1.Tree;                            
  8840.       goto xx40;
  8841.     case 31 /* '$' */ :; 
  8842.       xxUnion.xxLocalRecoverySet = 0; yyAddress (& Address1, & xxUnion); /*  */
  8843. /* line 925 "eiffel_mey.ell" */
  8844.  Actual0->Tree = mAddr(Address1.Tree);                            
  8845.       goto xx40;
  8846.     case 7:;
  8847.     case 8:;
  8848.     case 9:;
  8849.     case 10:;
  8850.     case 11:;
  8851.     case 12:;
  8852.     case 13:;
  8853.     case 14:;
  8854.     case 15:;
  8855.     case 16:;
  8856.     case 18:;
  8857.     case 19:;
  8858.     case 20:;
  8859.     case 21:;
  8860.     case 22:;
  8861.     case 24:;
  8862.     case 25:;
  8863.     case 26:;
  8864.     case 27:;
  8865.     case 28:;
  8866.     case 32:;
  8867.     case 33:;
  8868.     case 34:;
  8869.     case 35:;
  8870.     case 36:;
  8871.     case 37:;
  8872.     case 38:;
  8873.     case 39:;
  8874.     case 40:;
  8875.     case 41:;
  8876.     case 42:;
  8877.     case 43:;
  8878.     case 45:;
  8879.     case 46:;
  8880.     case 47:;
  8881.     case 48:;
  8882.     case 49:;
  8883.     case 50:;
  8884.     case 51:;
  8885.     case 52:;
  8886.     case 53:;
  8887.     case 54:;
  8888.     case 55:;
  8889.     case 57:;
  8890.     case 58:;
  8891.     case 59:;
  8892.     case 60:;
  8893.     case 61:;
  8894.     case 62:;
  8895.     case 63:;
  8896.     case 64:;
  8897.     case 65:;
  8898.     case 66:;
  8899.     case 67:;
  8900.     case 68:;
  8901.     case 69:;
  8902.     case 70:;
  8903.     case 71:;
  8904.     case 72:;
  8905.     case 73:;
  8906.     case 75:;
  8907.     case 76:;
  8908.     case 77:;
  8909.     case 78:;
  8910.     case 79:;
  8911.     case 80:;
  8912.     case 81:;
  8913.     case 82:;
  8914.     case 84:;
  8915.     case 85:;
  8916.     case 86:;
  8917.     case 87:;
  8918.     case 89:;
  8919.     case 91:;
  8920.     case 92:;
  8921.     case 93:;
  8922.     case 94:;
  8923.     case 95:;
  8924.     case 96:;
  8925.     case 97:;
  8926.     case 98:;
  8927.     case 99:;
  8928.     case 100:;
  8929.     case 101:;
  8930.     case 102:;
  8931.     case 103:;
  8932.     case 104:;
  8933.     default:
  8934.       if (xxIsRepairMode) {
  8935.         xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  8936. /* line 924 "eiffel_mey.ell" */
  8937.  Actual0->Tree = Expression1.Tree;                            
  8938.         goto xx40;
  8939.       }
  8940.       xxExpected (205, 205, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus '$' Current false 'old' Result 'strip' true not Id */
  8941.     }
  8942.   }
  8943.   xx40:;
  8944. }
  8945.  
  8946. static void yyAddress
  8947. # if defined __STDC__ | defined __cplusplus
  8948. (ParserMEY_tParsAttribute * Address0, xxtUnionPtr xxGlobalRecoverySet)
  8949. # else
  8950. (Address0, xxGlobalRecoverySet)
  8951. ParserMEY_tParsAttribute    * Address0;
  8952. xxtUnionPtr    xxGlobalRecoverySet;
  8953. # endif
  8954. {
  8955.   ParserMEY_tParsAttribute Address_mark1;
  8956.   xxtUnion xxUnion;
  8957.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8958.   if (xxToken != 31 /* '$' */)
  8959.     xxRecoveryLiteral (31, 207, xxGlobalRecoverySet); /*  '$' Current Result Id */
  8960.   else {
  8961.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8962.   }
  8963.   xxUnion.xxLocalRecoverySet = 0; yyAddress_mark (& Address_mark1, & xxUnion); /*  */
  8964. /* line 928 "eiffel_mey.ell" */
  8965.  Address0->Tree = Address_mark1.Tree;                            
  8966. }
  8967.  
  8968. static void yyAddress_mark
  8969. # if defined __STDC__ | defined __cplusplus
  8970. (ParserMEY_tParsAttribute * Address_mark0, xxtUnionPtr xxGlobalRecoverySet)
  8971. # else
  8972. (Address_mark0, xxGlobalRecoverySet)
  8973. ParserMEY_tParsAttribute    * Address_mark0;
  8974. xxtUnionPtr    xxGlobalRecoverySet;
  8975. # endif
  8976. {
  8977.     EiffelScan_tScanAttribute Current1;
  8978.     EiffelScan_tScanAttribute Result1;
  8979.   ParserMEY_tParsAttribute Identifier1;
  8980.   xxtUnion xxUnion;
  8981.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  8982.   for (;;) {
  8983.     switch (xxToken) {
  8984.     case 106 /* Id */ :; 
  8985.       xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  8986. /* line 932 "eiffel_mey.ell" */
  8987.  Address_mark0->Tree = Identifier1.Tree;                        
  8988.       goto xx41;
  8989.     case 44 /* Current */ :; 
  8990.       Current1 =       EiffelScan_Attribute;
  8991.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8992. /* line 933 "eiffel_mey.ell" */
  8993.  Address_mark0->Tree = mCurrent(Current1.Position);                    
  8994.       goto xx41;
  8995.     case 83 /* Result */ :; 
  8996.       Result1 =       EiffelScan_Attribute;
  8997.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  8998. /* line 934 "eiffel_mey.ell" */
  8999.  Address_mark0->Tree = mResult(Result1.Position);                    
  9000.       goto xx41;
  9001.     case 45:;
  9002.     case 46:;
  9003.     case 47:;
  9004.     case 48:;
  9005.     case 49:;
  9006.     case 50:;
  9007.     case 51:;
  9008.     case 52:;
  9009.     case 53:;
  9010.     case 54:;
  9011.     case 55:;
  9012.     case 56:;
  9013.     case 57:;
  9014.     case 58:;
  9015.     case 59:;
  9016.     case 60:;
  9017.     case 61:;
  9018.     case 62:;
  9019.     case 63:;
  9020.     case 64:;
  9021.     case 65:;
  9022.     case 66:;
  9023.     case 67:;
  9024.     case 68:;
  9025.     case 69:;
  9026.     case 70:;
  9027.     case 71:;
  9028.     case 72:;
  9029.     case 73:;
  9030.     case 74:;
  9031.     case 75:;
  9032.     case 76:;
  9033.     case 77:;
  9034.     case 78:;
  9035.     case 79:;
  9036.     case 80:;
  9037.     case 81:;
  9038.     case 82:;
  9039.     case 84:;
  9040.     case 85:;
  9041.     case 86:;
  9042.     case 87:;
  9043.     case 88:;
  9044.     case 89:;
  9045.     case 90:;
  9046.     case 91:;
  9047.     case 92:;
  9048.     case 93:;
  9049.     case 94:;
  9050.     case 95:;
  9051.     case 96:;
  9052.     case 97:;
  9053.     case 98:;
  9054.     case 99:;
  9055.     case 100:;
  9056.     case 101:;
  9057.     case 102:;
  9058.     case 103:;
  9059.     case 104:;
  9060.     case 105:;
  9061.     default:
  9062.       if (xxIsRepairMode) {
  9063.         xxUnion.xxLocalRecoverySet = 0; yyIdentifier (& Identifier1, & xxUnion); /*  */
  9064. /* line 932 "eiffel_mey.ell" */
  9065.  Address_mark0->Tree = Identifier1.Tree;                        
  9066.         goto xx41;
  9067.       }
  9068.       xxExpected (189, 189, xxGlobalRecoverySet); /*  Current Result Id /  Current Result Id */
  9069.     }
  9070.   }
  9071.   xx41:;
  9072. }
  9073.  
  9074. static void yyExpression
  9075. # if defined __STDC__ | defined __cplusplus
  9076. (ParserMEY_tParsAttribute * Expression0, xxtUnionPtr xxGlobalRecoverySet)
  9077. # else
  9078. (Expression0, xxGlobalRecoverySet)
  9079. ParserMEY_tParsAttribute    * Expression0;
  9080. xxtUnionPtr    xxGlobalRecoverySet;
  9081. # endif
  9082. {
  9083.   ParserMEY_tParsAttribute Prefix_operator1;
  9084.   ParserMEY_tParsAttribute Expression1;
  9085.   ParserMEY_tParsAttribute Expr_tail1;
  9086.   ParserMEY_tParsAttribute Old1;
  9087.   ParserMEY_tParsAttribute Ident_call1;
  9088.   ParserMEY_tParsAttribute Result_call1;
  9089.   ParserMEY_tParsAttribute Current_call1;
  9090.   ParserMEY_tParsAttribute Manifest_array1;
  9091.   ParserMEY_tParsAttribute No_sign_constant1;
  9092.   ParserMEY_tParsAttribute Strip1;
  9093.   ParserMEY_tParsAttribute Parenth_expr_or_qual_call1;
  9094.   xxtUnion xxUnion;
  9095.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9096.   for (;;) {
  9097.     switch (xxToken) {
  9098.     case 106 /* Id */ :; 
  9099.       xxUnion.xxLocalRecoverySet = 0; yyIdent_call (& Ident_call1, & xxUnion); /*  */
  9100. /* line 939 "eiffel_mey.ell" */
  9101.  Expression0->Tree = Ident_call1.Tree;                            
  9102.       goto xx42;
  9103.     case 83 /* Result */ :; 
  9104.       xxUnion.xxLocalRecoverySet = 0; yyResult_call (& Result_call1, & xxUnion); /*  */
  9105. /* line 940 "eiffel_mey.ell" */
  9106.  Expression0->Tree = Result_call1.Tree;                        
  9107.       goto xx42;
  9108.     case 44 /* Current */ :; 
  9109.       xxUnion.xxLocalRecoverySet = 0; yyCurrent_call (& Current_call1, & xxUnion); /*  */
  9110. /* line 941 "eiffel_mey.ell" */
  9111.  Expression0->Tree = Current_call1.Tree;                        
  9112.       goto xx42;
  9113.     case 23 /* '<<' */ :; 
  9114.       xxUnion.xxLocalRecoverySet = 126; yyManifest_array (& Manifest_array1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9115. /* line 942 "eiffel_mey.ell" */
  9116.  Expression0->Tree = Manifest_array1.Tree;                        
  9117.       for (;;) {
  9118.         if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9119.           xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9120. /* line 943 "eiffel_mey.ell" */
  9121.  Expression0->Tree = mBin_expr(Manifest_array1.Tree, Expr_tail1.Tree->Bin_expr.Op,
  9122.                             Expr_tail1.Tree->Bin_expr.Rop);                
  9123.           break;
  9124.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9125.         xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9126.       }
  9127.       goto xx42;
  9128.     case 1 /* Character_constant */ :; 
  9129.     case 2 /* Bit_sequence */ :; 
  9130.     case 3 /* Integer */ :; 
  9131.     case 4 /* Real */ :; 
  9132.     case 5 /* Manifest_string */ :; 
  9133.     case 56 /* false */ :; 
  9134.     case 90 /* true */ :; 
  9135.       xxUnion.xxLocalRecoverySet = 126; yyNo_sign_constant (& No_sign_constant1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9136. /* line 945 "eiffel_mey.ell" */
  9137.  Expression0->Tree = mSimple_expr(No_sign_constant1.Tree);                
  9138.       for (;;) {
  9139.         if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9140.           xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9141. /* line 946 "eiffel_mey.ell" */
  9142.  Expression0->Tree = mBin_expr(mSimple_expr(No_sign_constant1.Tree), 
  9143.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop);    
  9144.           break;
  9145.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9146.         xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9147.       }
  9148.       goto xx42;
  9149.     case 74 /* 'old' */ :; 
  9150.       xxUnion.xxLocalRecoverySet = 126; yyOld (& Old1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9151. /* line 948 "eiffel_mey.ell" */
  9152.  Expression0->Tree = Old1.Tree;                            
  9153.       for (;;) {
  9154.         if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9155.           xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9156. /* line 949 "eiffel_mey.ell" */
  9157.  Expression0->Tree = mBin_expr(Old1.Tree, Expr_tail1.Tree->Bin_expr.Op,
  9158.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  9159.           break;
  9160.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9161.         xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9162.       }
  9163.       goto xx42;
  9164.     case 88 /* 'strip' */ :; 
  9165.       xxUnion.xxLocalRecoverySet = 126; yyStrip (& Strip1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9166. /* line 951 "eiffel_mey.ell" */
  9167.  Expression0->Tree = Strip1.Tree;                            
  9168.       for (;;) {
  9169.         if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9170.           xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9171. /* line 952 "eiffel_mey.ell" */
  9172.  Expression0->Tree = mBin_expr(Strip1.Tree, Expr_tail1.Tree->Bin_expr.Op,
  9173.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  9174.           break;
  9175.         } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9176.         xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9177.       }
  9178.       goto xx42;
  9179.     case 17 /* '(' */ :; 
  9180.       xxUnion.xxLocalRecoverySet = 0; yyParenth_expr_or_qual_call (& Parenth_expr_or_qual_call1, & xxUnion); /*  */
  9181. /* line 954 "eiffel_mey.ell" */
  9182.  Expression0->Tree = Parenth_expr_or_qual_call1.Tree;                
  9183.       goto xx42;
  9184.     case 6 /* Free_op */ :; 
  9185.     case 29 /* plus */ :; 
  9186.     case 30 /* minus */ :; 
  9187.     case 105 /* not */ :; 
  9188.       xxUnion.xxLocalRecoverySet = 128; yyPrefix_operator (& Prefix_operator1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9189.       xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  9190. /* line 955 "eiffel_mey.ell" */
  9191.  Expression0->Tree = mUn_expr(Prefix_operator1.Tree, Expression1.Tree);     
  9192.       goto xx42;
  9193.     case 7:;
  9194.     case 8:;
  9195.     case 9:;
  9196.     case 10:;
  9197.     case 11:;
  9198.     case 12:;
  9199.     case 13:;
  9200.     case 14:;
  9201.     case 15:;
  9202.     case 16:;
  9203.     case 18:;
  9204.     case 19:;
  9205.     case 20:;
  9206.     case 21:;
  9207.     case 22:;
  9208.     case 24:;
  9209.     case 25:;
  9210.     case 26:;
  9211.     case 27:;
  9212.     case 28:;
  9213.     case 31:;
  9214.     case 32:;
  9215.     case 33:;
  9216.     case 34:;
  9217.     case 35:;
  9218.     case 36:;
  9219.     case 37:;
  9220.     case 38:;
  9221.     case 39:;
  9222.     case 40:;
  9223.     case 41:;
  9224.     case 42:;
  9225.     case 43:;
  9226.     case 45:;
  9227.     case 46:;
  9228.     case 47:;
  9229.     case 48:;
  9230.     case 49:;
  9231.     case 50:;
  9232.     case 51:;
  9233.     case 52:;
  9234.     case 53:;
  9235.     case 54:;
  9236.     case 55:;
  9237.     case 57:;
  9238.     case 58:;
  9239.     case 59:;
  9240.     case 60:;
  9241.     case 61:;
  9242.     case 62:;
  9243.     case 63:;
  9244.     case 64:;
  9245.     case 65:;
  9246.     case 66:;
  9247.     case 67:;
  9248.     case 68:;
  9249.     case 69:;
  9250.     case 70:;
  9251.     case 71:;
  9252.     case 72:;
  9253.     case 73:;
  9254.     case 75:;
  9255.     case 76:;
  9256.     case 77:;
  9257.     case 78:;
  9258.     case 79:;
  9259.     case 80:;
  9260.     case 81:;
  9261.     case 82:;
  9262.     case 84:;
  9263.     case 85:;
  9264.     case 86:;
  9265.     case 87:;
  9266.     case 89:;
  9267.     case 91:;
  9268.     case 92:;
  9269.     case 93:;
  9270.     case 94:;
  9271.     case 95:;
  9272.     case 96:;
  9273.     case 97:;
  9274.     case 98:;
  9275.     case 99:;
  9276.     case 100:;
  9277.     case 101:;
  9278.     case 102:;
  9279.     case 103:;
  9280.     case 104:;
  9281.     default:
  9282.       if (xxIsRepairMode) {
  9283.         xxUnion.xxLocalRecoverySet = 0; yyIdent_call (& Ident_call1, & xxUnion); /*  */
  9284. /* line 939 "eiffel_mey.ell" */
  9285.  Expression0->Tree = Ident_call1.Tree;                            
  9286.         goto xx42;
  9287.       }
  9288.       xxExpected (128, 128, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9289.     }
  9290.   }
  9291.   xx42:;
  9292. }
  9293.  
  9294. static void yyExpr_tail
  9295. # if defined __STDC__ | defined __cplusplus
  9296. (ParserMEY_tParsAttribute * Expr_tail0, xxtUnionPtr xxGlobalRecoverySet)
  9297. # else
  9298. (Expr_tail0, xxGlobalRecoverySet)
  9299. ParserMEY_tParsAttribute    * Expr_tail0;
  9300. xxtUnionPtr    xxGlobalRecoverySet;
  9301. # endif
  9302. {
  9303.   ParserMEY_tParsAttribute Infix_operator1;
  9304.   ParserMEY_tParsAttribute Expression1;
  9305.   ParserMEY_tParsAttribute Comparison1;
  9306.   xxtUnion xxUnion;
  9307.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9308.   for (;;) {
  9309.     switch (xxToken) {
  9310.     case 6 /* Free_op */ :; 
  9311.     case 29 /* plus */ :; 
  9312.     case 30 /* minus */ :; 
  9313.     case 33 /* div */ :; 
  9314.     case 36 /* and */ :; 
  9315.     case 61 /* implies */ :; 
  9316.     case 76 /* or */ :; 
  9317.     case 96 /* xor */ :; 
  9318.     case 97 /* times */ :; 
  9319.     case 98 /* smaller */ :; 
  9320.     case 99 /* greater */ :; 
  9321.     case 100 /* sm_eq */ :; 
  9322.     case 101 /* gr_eq */ :; 
  9323.     case 102 /* idiv */ :; 
  9324.     case 103 /* imod */ :; 
  9325.     case 104 /* power */ :; 
  9326.       xxUnion.xxLocalRecoverySet = 128; yyInfix_operator (& Infix_operator1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9327. /* line 959 "eiffel_mey.ell" */
  9328.  Expr_tail0->Tree = mBin_expr(mExpression0(), Infix_operator1.Tree, mExpression0());    
  9329.       goto xx43;
  9330.     case 13 /* Eq */ :; 
  9331.     case 14 /* Not_eq */ :; 
  9332.       xxUnion.xxLocalRecoverySet = 128; yyComparison (& Comparison1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9333. /* line 960 "eiffel_mey.ell" */
  9334.  Expr_tail0->Tree = mBin_expr(mExpression0(), Comparison1.Tree, mExpression0());    
  9335.       goto xx43;
  9336.     case 7:;
  9337.     case 8:;
  9338.     case 9:;
  9339.     case 10:;
  9340.     case 11:;
  9341.     case 12:;
  9342.     case 15:;
  9343.     case 16:;
  9344.     case 17:;
  9345.     case 18:;
  9346.     case 19:;
  9347.     case 20:;
  9348.     case 21:;
  9349.     case 22:;
  9350.     case 23:;
  9351.     case 24:;
  9352.     case 25:;
  9353.     case 26:;
  9354.     case 27:;
  9355.     case 28:;
  9356.     case 31:;
  9357.     case 32:;
  9358.     case 34:;
  9359.     case 35:;
  9360.     case 37:;
  9361.     case 38:;
  9362.     case 39:;
  9363.     case 40:;
  9364.     case 41:;
  9365.     case 42:;
  9366.     case 43:;
  9367.     case 44:;
  9368.     case 45:;
  9369.     case 46:;
  9370.     case 47:;
  9371.     case 48:;
  9372.     case 49:;
  9373.     case 50:;
  9374.     case 51:;
  9375.     case 52:;
  9376.     case 53:;
  9377.     case 54:;
  9378.     case 55:;
  9379.     case 56:;
  9380.     case 57:;
  9381.     case 58:;
  9382.     case 59:;
  9383.     case 60:;
  9384.     case 62:;
  9385.     case 63:;
  9386.     case 64:;
  9387.     case 65:;
  9388.     case 66:;
  9389.     case 67:;
  9390.     case 68:;
  9391.     case 69:;
  9392.     case 70:;
  9393.     case 71:;
  9394.     case 72:;
  9395.     case 73:;
  9396.     case 74:;
  9397.     case 75:;
  9398.     case 77:;
  9399.     case 78:;
  9400.     case 79:;
  9401.     case 80:;
  9402.     case 81:;
  9403.     case 82:;
  9404.     case 83:;
  9405.     case 84:;
  9406.     case 85:;
  9407.     case 86:;
  9408.     case 87:;
  9409.     case 88:;
  9410.     case 89:;
  9411.     case 90:;
  9412.     case 91:;
  9413.     case 92:;
  9414.     case 93:;
  9415.     case 94:;
  9416.     case 95:;
  9417.     default:
  9418.       if (xxIsRepairMode) {
  9419.         xxUnion.xxLocalRecoverySet = 128; yyInfix_operator (& Infix_operator1, & xxUnion); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  9420. /* line 959 "eiffel_mey.ell" */
  9421.  Expr_tail0->Tree = mBin_expr(mExpression0(), Infix_operator1.Tree, mExpression0());    
  9422.         goto xx43;
  9423.       }
  9424.       xxExpected (208, 208, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op Eq Not_eq '(' '<<' plus minus div and Current false implies 'old' or Result 'strip' true xor times smaller greater sm_eq gr_eq idiv imod power not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op Eq Not_eq '(' '<<' plus minus div and Current false implies 'old' or Result 'strip' true xor times smaller greater sm_eq gr_eq idiv imod power not Id */
  9425.     }
  9426.   }
  9427.   xx43:;
  9428.   xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  9429. /* line 961 "eiffel_mey.ell" */
  9430.  Expr_tail0->Tree->Bin_expr.Rop = Expression1.Tree;                    
  9431. }
  9432.  
  9433. static void yyIdent_call
  9434. # if defined __STDC__ | defined __cplusplus
  9435. (ParserMEY_tParsAttribute * Ident_call0, xxtUnionPtr xxGlobalRecoverySet)
  9436. # else
  9437. (Ident_call0, xxGlobalRecoverySet)
  9438. ParserMEY_tParsAttribute    * Ident_call0;
  9439. xxtUnionPtr    xxGlobalRecoverySet;
  9440. # endif
  9441. {
  9442.   ParserMEY_tParsAttribute Identifier1;
  9443.   ParserMEY_tParsAttribute Actuals1;
  9444.   ParserMEY_tParsAttribute Call_chain1;
  9445.   ParserMEY_tParsAttribute Expr_tail1;
  9446.   xxtUnion xxUnion;
  9447.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9448.   xxUnion.xxLocalRecoverySet = 123; yyIdentifier (& Identifier1, & xxUnion); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9449. /* line 965 "eiffel_mey.ell" */
  9450.  Ident_call0->Tree = mCall_chain1(mUnqual_call1(Identifier1.Tree, mActuals0()) ,mCall_chain0()); 
  9451.   for (;;) {
  9452.     if ((xxToken == 17 /* '(' */)) {
  9453.       xxUnion.xxLocalRecoverySet = 124; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9454. /* line 966 "eiffel_mey.ell" */
  9455.  Ident_call0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;    
  9456.       break;
  9457.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '.' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9458.     xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9459.   }
  9460.   for (;;) {
  9461.     if ((xxToken == 10 /* '.' */)) {
  9462.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9463.       xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9464. /* line 967 "eiffel_mey.ell" */
  9465.  Ident_call0->Tree->Call_chain1.Call_chain = Call_chain1.Tree ;            
  9466.       break;
  9467.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9468.     xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9469.   }
  9470. /* line 968 "eiffel_mey.ell" */
  9471.  Ident_call0->Tree = mCall(mExpression0(), Ident_call0->Tree);                
  9472.   for (;;) {
  9473.     if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9474.       xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9475. /* line 969 "eiffel_mey.ell" */
  9476.  Ident_call0->Tree = mBin_expr(Ident_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  9477.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  9478.       break;
  9479.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9480.     xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9481.   }
  9482. }
  9483.  
  9484. static void yyResult_call
  9485. # if defined __STDC__ | defined __cplusplus
  9486. (ParserMEY_tParsAttribute * Result_call0, xxtUnionPtr xxGlobalRecoverySet)
  9487. # else
  9488. (Result_call0, xxGlobalRecoverySet)
  9489. ParserMEY_tParsAttribute    * Result_call0;
  9490. xxtUnionPtr    xxGlobalRecoverySet;
  9491. # endif
  9492. {
  9493.     EiffelScan_tScanAttribute Result1;
  9494.   ParserMEY_tParsAttribute Actuals1;
  9495.   ParserMEY_tParsAttribute Call_chain1;
  9496.   ParserMEY_tParsAttribute Expr_tail1;
  9497.   xxtUnion xxUnion;
  9498.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9499.   if (xxToken != 83 /* Result */)
  9500.     xxRecoveryTerminal (83, 209, xxGlobalRecoverySet, & Result1); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or Result xor times smaller greater sm_eq gr_eq idiv imod power */
  9501.   else {
  9502.     Result1 =   EiffelScan_Attribute;
  9503.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9504.   }
  9505. /* line 974 "eiffel_mey.ell" */
  9506.  Result_call0->Tree = mCall_chain1(mUnqual_call1( mResult(Result1.Position),
  9507.                                         mActuals0()), mCall_chain0());    
  9508.   for (;;) {
  9509.     if ((xxToken == 17 /* '(' */)) {
  9510.       xxUnion.xxLocalRecoverySet = 124; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9511. /* line 976 "eiffel_mey.ell" */
  9512.  Result_call0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;     
  9513.       break;
  9514.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '.' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9515.     xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9516.   }
  9517.   for (;;) {
  9518.     if ((xxToken == 10 /* '.' */)) {
  9519.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9520.       xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9521. /* line 977 "eiffel_mey.ell" */
  9522.  Result_call0->Tree->Call_chain1.Call_chain = Call_chain1.Tree ;            
  9523.       break;
  9524.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9525.     xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9526.   }
  9527. /* line 978 "eiffel_mey.ell" */
  9528.  Result_call0->Tree = mCall(mExpression0(), Result_call0->Tree);            
  9529.   for (;;) {
  9530.     if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9531.       xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9532. /* line 979 "eiffel_mey.ell" */
  9533.  Result_call0->Tree = mBin_expr(Result_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  9534.                                         Expr_tail1.Tree->Bin_expr.Rop); 
  9535.       break;
  9536.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9537.     xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9538.   }
  9539. }
  9540.  
  9541. static void yyCurrent_call
  9542. # if defined __STDC__ | defined __cplusplus
  9543. (ParserMEY_tParsAttribute * Current_call0, xxtUnionPtr xxGlobalRecoverySet)
  9544. # else
  9545. (Current_call0, xxGlobalRecoverySet)
  9546. ParserMEY_tParsAttribute    * Current_call0;
  9547. xxtUnionPtr    xxGlobalRecoverySet;
  9548. # endif
  9549. {
  9550.     EiffelScan_tScanAttribute Current1;
  9551.   ParserMEY_tParsAttribute Actuals1;
  9552.   ParserMEY_tParsAttribute Call_chain1;
  9553.   ParserMEY_tParsAttribute Expr_tail1;
  9554.   xxtUnion xxUnion;
  9555.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9556.   if (xxToken != 44 /* Current */)
  9557.     xxRecoveryTerminal (44, 210, xxGlobalRecoverySet, & Current1); /*  Free_op '.' Eq Not_eq '(' plus minus div and Current implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9558.   else {
  9559.     Current1 =   EiffelScan_Attribute;
  9560.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9561.   }
  9562. /* line 985 "eiffel_mey.ell" */
  9563.  Current_call0->Tree = mCall_chain1(mUnqual_call1( mCurrent(Current1.Position), mActuals0()),
  9564.                                                  mCall_chain0());
  9565.   for (;;) {
  9566.     if ((xxToken == 17 /* '(' */)) {
  9567.       xxUnion.xxLocalRecoverySet = 124; yyActuals (& Actuals1, & xxUnion); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9568. /* line 987 "eiffel_mey.ell" */
  9569.  Current_call0->Tree->Call_chain1.Unqual_call->Unqual_call1.Actuals = Actuals1.Tree;     
  9570.       break;
  9571.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 7 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '.' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9572.     xxExpected (123, 123, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq '(' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9573.   }
  9574.   for (;;) {
  9575.     if ((xxToken == 10 /* '.' */)) {
  9576.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9577.       xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9578. /* line 988 "eiffel_mey.ell" */
  9579.  Current_call0->Tree->Call_chain1.Call_chain = Call_chain1.Tree ;            
  9580.       break;
  9581.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9582.     xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9583.   }
  9584. /* line 989 "eiffel_mey.ell" */
  9585.  Current_call0->Tree = mCall(mExpression0(), Current_call0->Tree);            
  9586.   for (;;) {
  9587.     if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9588.       xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9589. /* line 990 "eiffel_mey.ell" */
  9590.  Current_call0->Tree = mBin_expr(Current_call0->Tree, Expr_tail1.Tree->Bin_expr.Op, 
  9591.                                         Expr_tail1.Tree->Bin_expr.Rop);    
  9592.       break;
  9593.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9594.     xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9595.   }
  9596. }
  9597.  
  9598. static void yyParenth_expr_or_qual_call
  9599. # if defined __STDC__ | defined __cplusplus
  9600. (ParserMEY_tParsAttribute * Parenth_expr_or_qual_call0, xxtUnionPtr xxGlobalRecoverySet)
  9601. # else
  9602. (Parenth_expr_or_qual_call0, xxGlobalRecoverySet)
  9603. ParserMEY_tParsAttribute    * Parenth_expr_or_qual_call0;
  9604. xxtUnionPtr    xxGlobalRecoverySet;
  9605. # endif
  9606. {
  9607.   ParserMEY_tParsAttribute Call_chain1;
  9608.   ParserMEY_tParsAttribute Expression1;
  9609.   ParserMEY_tParsAttribute Expr_tail1;
  9610.   xxtUnion xxUnion;
  9611.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9612.   if (xxToken != 17 /* '(' */)
  9613.     xxRecoveryLiteral (17, 211, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '.' Eq Not_eq '(' ')' '<<' plus minus div and Current false implies 'old' or Result 'strip' true xor times smaller greater sm_eq gr_eq idiv imod power not Id */
  9614.   else {
  9615.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9616.   }
  9617.   xxUnion.xxLocalRecoverySet = 212; yyExpression (& Expression1, & xxUnion); /*  Free_op '.' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9618.   if (xxToken != 18 /* ')' */)
  9619.     xxRecoveryLiteral (18, 212, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq ')' plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9620.   else {
  9621.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9622.   }
  9623. /* line 997 "eiffel_mey.ell" */
  9624.  Parenth_expr_or_qual_call0->Tree = mParenth(Expression1.Tree);            
  9625.   for (;;) {
  9626.     if ((xxToken == 10 /* '.' */)) {
  9627.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9628.       xxUnion.xxLocalRecoverySet = 126; yyCall_chain (& Call_chain1, & xxUnion); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9629. /* line 998 "eiffel_mey.ell" */
  9630.  Parenth_expr_or_qual_call0->Tree = mCall(Expression1.Tree,Call_chain1.Tree);         
  9631.       break;
  9632.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9633.     xxExpected (124, 124, xxGlobalRecoverySet); /*  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op '.' Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9634.   }
  9635.   for (;;) {
  9636.     if ((xxVerticalSet [xxToken + 540] & 1 << 4 /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */)) {
  9637.       xxUnion.xxLocalRecoverySet = 0; yyExpr_tail (& Expr_tail1, & xxUnion); /*  */
  9638. /* line 999 "eiffel_mey.ell" */
  9639.  Parenth_expr_or_qual_call0->Tree = mBin_expr(Parenth_expr_or_qual_call0->Tree, 
  9640.                         Expr_tail1.Tree->Bin_expr.Op, Expr_tail1.Tree->Bin_expr.Rop);    
  9641.       break;
  9642.     } else if ((xxVerticalSet [xxToken + 756] & 1 << 6 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ';' ',' '!' '!!' Eq Not_eq '(' ')' '<<' '>>' plus minus div and 'check' Current 'debug' deferred do else 'elseif' 'end' 'ensure' 'external' false 'from' 'if' implies 'inspect' 'invariant' 'local' 'loop' 'old' once or 'rescue' Result retry 'strip' then true 'until' 'variant' 'when' xor times smaller greater sm_eq gr_eq idiv imod power not Id Comment */) || xxIsRepairMode) break;
  9643.     xxExpected (126, 126, xxGlobalRecoverySet); /*  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power /  Free_op Eq Not_eq plus minus div and implies or xor times smaller greater sm_eq gr_eq idiv imod power */
  9644.   }
  9645. }
  9646.  
  9647. static void yyNo_sign_constant
  9648. # if defined __STDC__ | defined __cplusplus
  9649. (ParserMEY_tParsAttribute * No_sign_constant0, xxtUnionPtr xxGlobalRecoverySet)
  9650. # else
  9651. (No_sign_constant0, xxGlobalRecoverySet)
  9652. ParserMEY_tParsAttribute    * No_sign_constant0;
  9653. xxtUnionPtr    xxGlobalRecoverySet;
  9654. # endif
  9655. {
  9656.     EiffelScan_tScanAttribute Character_constant1;
  9657.     EiffelScan_tScanAttribute Bit_sequence1;
  9658.     EiffelScan_tScanAttribute Integer1;
  9659.     EiffelScan_tScanAttribute Real1;
  9660.     EiffelScan_tScanAttribute Manifest_string1;
  9661.   ParserMEY_tParsAttribute Boolean_constant1;
  9662.   xxtUnion xxUnion;
  9663.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9664.   for (;;) {
  9665.     switch (xxToken) {
  9666.     case 56 /* false */ :; 
  9667.     case 90 /* true */ :; 
  9668.       xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  9669. /* line 1003 "eiffel_mey.ell" */
  9670.  No_sign_constant0->Tree = Boolean_constant1.Tree;                     
  9671.       goto xx44;
  9672.     case 1 /* Character_constant */ :; 
  9673.       Character_constant1 =       EiffelScan_Attribute;
  9674.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9675. /* line 1004 "eiffel_mey.ell" */
  9676.  No_sign_constant0->Tree = mCh(Character_constant1.Char, Character_constant1.Position);
  9677.       goto xx44;
  9678.     case 3 /* Integer */ :; 
  9679.       Integer1 =       EiffelScan_Attribute;
  9680.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9681. /* line 1005 "eiffel_mey.ell" */
  9682.  No_sign_constant0->Tree = mInt(mOper(NoPosition, VOID), Integer1.Int, Integer1.Position);
  9683.       goto xx44;
  9684.     case 4 /* Real */ :; 
  9685.       Real1 =       EiffelScan_Attribute;
  9686.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9687. /* line 1006 "eiffel_mey.ell" */
  9688.  No_sign_constant0->Tree = mReal(mOper(NoPosition, VOID), Real1.Real, Real1.Position);    
  9689.       goto xx44;
  9690.     case 5 /* Manifest_string */ :; 
  9691.       Manifest_string1 =       EiffelScan_Attribute;
  9692.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9693. /* line 1007 "eiffel_mey.ell" */
  9694.  No_sign_constant0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position); 
  9695.       goto xx44;
  9696.     case 2 /* Bit_sequence */ :; 
  9697.       Bit_sequence1 =       EiffelScan_Attribute;
  9698.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9699. /* line 1008 "eiffel_mey.ell" */
  9700.  No_sign_constant0->Tree = mBitseq(Bit_sequence1.StringRef, Bit_sequence1.Position);     
  9701.       goto xx44;
  9702.     case 6:;
  9703.     case 7:;
  9704.     case 8:;
  9705.     case 9:;
  9706.     case 10:;
  9707.     case 11:;
  9708.     case 12:;
  9709.     case 13:;
  9710.     case 14:;
  9711.     case 15:;
  9712.     case 16:;
  9713.     case 17:;
  9714.     case 18:;
  9715.     case 19:;
  9716.     case 20:;
  9717.     case 21:;
  9718.     case 22:;
  9719.     case 23:;
  9720.     case 24:;
  9721.     case 25:;
  9722.     case 26:;
  9723.     case 27:;
  9724.     case 28:;
  9725.     case 29:;
  9726.     case 30:;
  9727.     case 31:;
  9728.     case 32:;
  9729.     case 33:;
  9730.     case 34:;
  9731.     case 35:;
  9732.     case 36:;
  9733.     case 37:;
  9734.     case 38:;
  9735.     case 39:;
  9736.     case 40:;
  9737.     case 41:;
  9738.     case 42:;
  9739.     case 43:;
  9740.     case 44:;
  9741.     case 45:;
  9742.     case 46:;
  9743.     case 47:;
  9744.     case 48:;
  9745.     case 49:;
  9746.     case 50:;
  9747.     case 51:;
  9748.     case 52:;
  9749.     case 53:;
  9750.     case 54:;
  9751.     case 55:;
  9752.     case 57:;
  9753.     case 58:;
  9754.     case 59:;
  9755.     case 60:;
  9756.     case 61:;
  9757.     case 62:;
  9758.     case 63:;
  9759.     case 64:;
  9760.     case 65:;
  9761.     case 66:;
  9762.     case 67:;
  9763.     case 68:;
  9764.     case 69:;
  9765.     case 70:;
  9766.     case 71:;
  9767.     case 72:;
  9768.     case 73:;
  9769.     case 74:;
  9770.     case 75:;
  9771.     case 76:;
  9772.     case 77:;
  9773.     case 78:;
  9774.     case 79:;
  9775.     case 80:;
  9776.     case 81:;
  9777.     case 82:;
  9778.     case 83:;
  9779.     case 84:;
  9780.     case 85:;
  9781.     case 86:;
  9782.     case 87:;
  9783.     case 88:;
  9784.     case 89:;
  9785.     default:
  9786.       if (xxIsRepairMode) {
  9787.         xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  9788. /* line 1003 "eiffel_mey.ell" */
  9789.  No_sign_constant0->Tree = Boolean_constant1.Tree;                     
  9790.         goto xx44;
  9791.       }
  9792.       xxExpected (216, 216, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string false true /  Character_constant Bit_sequence Integer Real Manifest_string false true */
  9793.     }
  9794.   }
  9795.   xx44:;
  9796. }
  9797.  
  9798. static void yyBoolean_expression
  9799. # if defined __STDC__ | defined __cplusplus
  9800. (ParserMEY_tParsAttribute * Boolean_expression0, xxtUnionPtr xxGlobalRecoverySet)
  9801. # else
  9802. (Boolean_expression0, xxGlobalRecoverySet)
  9803. ParserMEY_tParsAttribute    * Boolean_expression0;
  9804. xxtUnionPtr    xxGlobalRecoverySet;
  9805. # endif
  9806. {
  9807.   ParserMEY_tParsAttribute Expression1;
  9808.   xxtUnion xxUnion;
  9809.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9810.   xxUnion.xxLocalRecoverySet = 0; yyExpression (& Expression1, & xxUnion); /*  */
  9811. /* line 1012 "eiffel_mey.ell" */
  9812.  Boolean_expression0->Tree = Expression1.Tree;                        
  9813. }
  9814.  
  9815. static void yyComparison
  9816. # if defined __STDC__ | defined __cplusplus
  9817. (ParserMEY_tParsAttribute * Comparison0, xxtUnionPtr xxGlobalRecoverySet)
  9818. # else
  9819. (Comparison0, xxGlobalRecoverySet)
  9820. ParserMEY_tParsAttribute    * Comparison0;
  9821. xxtUnionPtr    xxGlobalRecoverySet;
  9822. # endif
  9823. {
  9824.     EiffelScan_tScanAttribute Eq1;
  9825.     EiffelScan_tScanAttribute Not_eq1;
  9826.   for (;;) {
  9827.     switch (xxToken) {
  9828.     case 13 /* Eq */ :; 
  9829.       Eq1 =       EiffelScan_Attribute;
  9830.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9831. /* line 1016 "eiffel_mey.ell" */
  9832.  Comparison0->Tree = mInfix(mOper(Eq1.Position, EQ));                    
  9833.       goto xx45;
  9834.     case 14 /* Not_eq */ :; 
  9835.       Not_eq1 =       EiffelScan_Attribute;
  9836.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9837. /* line 1017 "eiffel_mey.ell" */
  9838.  Comparison0->Tree = mInfix(mOper(Not_eq1.Position, NOT_EQ));                
  9839.       goto xx45;
  9840.     default:
  9841.       if (xxIsRepairMode) {
  9842.         if (xxToken != 13 /* Eq */)
  9843.           xxRecoveryTerminal (13, 217, xxGlobalRecoverySet, & Eq1); /*  Eq */
  9844.         else {
  9845.           Eq1 =         EiffelScan_Attribute;
  9846.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  9847.         }
  9848. /* line 1016 "eiffel_mey.ell" */
  9849.  Comparison0->Tree = mInfix(mOper(Eq1.Position, EQ));                    
  9850.         goto xx45;
  9851.       }
  9852.       xxExpected (219, 219, xxGlobalRecoverySet); /*  Eq Not_eq /  Eq Not_eq */
  9853.     }
  9854.   }
  9855.   xx45:;
  9856. }
  9857.  
  9858. static void yyConstant
  9859. # if defined __STDC__ | defined __cplusplus
  9860. (ParserMEY_tParsAttribute * Constant0, xxtUnionPtr xxGlobalRecoverySet)
  9861. # else
  9862. (Constant0, xxGlobalRecoverySet)
  9863. ParserMEY_tParsAttribute    * Constant0;
  9864. xxtUnionPtr    xxGlobalRecoverySet;
  9865. # endif
  9866. {
  9867.   ParserMEY_tParsAttribute Manifest_constant1;
  9868.   ParserMEY_tParsAttribute Constant_attribute1;
  9869.   xxtUnion xxUnion;
  9870.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  9871.   for (;;) {
  9872.     switch (xxToken) {
  9873.     case 1 /* Character_constant */ :; 
  9874.     case 2 /* Bit_sequence */ :; 
  9875.     case 3 /* Integer */ :; 
  9876.     case 4 /* Real */ :; 
  9877.     case 5 /* Manifest_string */ :; 
  9878.     case 7 /* ';' */ :; 
  9879.     case 8 /* ',' */ :; 
  9880.     case 11 /* '!' */ :; 
  9881.     case 18 /* ')' */ :; 
  9882.     case 20 /* ']' */ :; 
  9883.     case 29 /* plus */ :; 
  9884.     case 30 /* minus */ :; 
  9885.     case 46 /* deferred */ :; 
  9886.     case 47 /* do */ :; 
  9887.     case 51 /* 'end' */ :; 
  9888.     case 55 /* 'external' */ :; 
  9889.     case 56 /* false */ :; 
  9890.     case 57 /* 'feature' */ :; 
  9891.     case 59 /* 'frozen' */ :; 
  9892.     case 63 /* infix */ :; 
  9893.     case 67 /* 'invariant' */ :; 
  9894.     case 68 /* 'is' */ :; 
  9895.     case 75 /* once */ :; 
  9896.     case 77 /* prefix */ :; 
  9897.     case 90 /* true */ :; 
  9898.     case 106 /* Id */ :; 
  9899.       xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  9900. /* line 1023 "eiffel_mey.ell" */
  9901.  Constant0->Tree = Manifest_constant1.Tree;                        
  9902.       goto xx46;
  9903.     case 44 /* Current */ :; 
  9904.     case 83 /* Result */ :; 
  9905.       xxUnion.xxLocalRecoverySet = 0; yyConstant_attribute (& Constant_attribute1, & xxUnion); /*  */
  9906. /* line 1024 "eiffel_mey.ell" */
  9907.  Constant0->Tree = Constant_attribute1.Tree;                        
  9908.       goto xx46;
  9909.     case 6:;
  9910.     case 9:;
  9911.     case 10:;
  9912.     case 12:;
  9913.     case 13:;
  9914.     case 14:;
  9915.     case 15:;
  9916.     case 16:;
  9917.     case 17:;
  9918.     case 19:;
  9919.     case 21:;
  9920.     case 22:;
  9921.     case 23:;
  9922.     case 24:;
  9923.     case 25:;
  9924.     case 26:;
  9925.     case 27:;
  9926.     case 28:;
  9927.     case 31:;
  9928.     case 32:;
  9929.     case 33:;
  9930.     case 34:;
  9931.     case 35:;
  9932.     case 36:;
  9933.     case 37:;
  9934.     case 38:;
  9935.     case 39:;
  9936.     case 40:;
  9937.     case 41:;
  9938.     case 42:;
  9939.     case 43:;
  9940.     case 45:;
  9941.     case 48:;
  9942.     case 49:;
  9943.     case 50:;
  9944.     case 52:;
  9945.     case 53:;
  9946.     case 54:;
  9947.     case 58:;
  9948.     case 60:;
  9949.     case 61:;
  9950.     case 62:;
  9951.     case 64:;
  9952.     case 65:;
  9953.     case 66:;
  9954.     case 69:;
  9955.     case 70:;
  9956.     case 71:;
  9957.     case 72:;
  9958.     case 73:;
  9959.     case 74:;
  9960.     case 76:;
  9961.     case 78:;
  9962.     case 79:;
  9963.     case 80:;
  9964.     case 81:;
  9965.     case 82:;
  9966.     case 84:;
  9967.     case 85:;
  9968.     case 86:;
  9969.     case 87:;
  9970.     case 88:;
  9971.     case 89:;
  9972.     case 91:;
  9973.     case 92:;
  9974.     case 93:;
  9975.     case 94:;
  9976.     case 95:;
  9977.     case 96:;
  9978.     case 97:;
  9979.     case 98:;
  9980.     case 99:;
  9981.     case 100:;
  9982.     case 101:;
  9983.     case 102:;
  9984.     case 103:;
  9985.     case 104:;
  9986.     case 105:;
  9987.     default:
  9988.       if (xxIsRepairMode) {
  9989.         xxUnion.xxLocalRecoverySet = 0; yyManifest_constant (& Manifest_constant1, & xxUnion); /*  */
  9990. /* line 1023 "eiffel_mey.ell" */
  9991.  Constant0->Tree = Manifest_constant1.Tree;                        
  9992.         goto xx46;
  9993.       }
  9994.       xxExpected (220, 220, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus Current false Result true Id /  Character_constant Bit_sequence Integer Real Manifest_string plus minus Current false Result true Id */
  9995.     }
  9996.   }
  9997.   xx46:;
  9998. }
  9999.  
  10000. static void yyConstant_attribute
  10001. # if defined __STDC__ | defined __cplusplus
  10002. (ParserMEY_tParsAttribute * Constant_attribute0, xxtUnionPtr xxGlobalRecoverySet)
  10003. # else
  10004. (Constant_attribute0, xxGlobalRecoverySet)
  10005. ParserMEY_tParsAttribute    * Constant_attribute0;
  10006. xxtUnionPtr    xxGlobalRecoverySet;
  10007. # endif
  10008. {
  10009.   ParserMEY_tParsAttribute Entity1;
  10010.   xxtUnion xxUnion;
  10011.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10012.   xxUnion.xxLocalRecoverySet = 0; yyEntity (& Entity1, & xxUnion); /*  */
  10013. /* line 1028 "eiffel_mey.ell" */
  10014.  Constant_attribute0->Tree = Entity1.Tree;                        
  10015. }
  10016.  
  10017. static void yyManifest_constant
  10018. # if defined __STDC__ | defined __cplusplus
  10019. (ParserMEY_tParsAttribute * Manifest_constant0, xxtUnionPtr xxGlobalRecoverySet)
  10020. # else
  10021. (Manifest_constant0, xxGlobalRecoverySet)
  10022. ParserMEY_tParsAttribute    * Manifest_constant0;
  10023. xxtUnionPtr    xxGlobalRecoverySet;
  10024. # endif
  10025. {
  10026.     EiffelScan_tScanAttribute Character_constant1;
  10027.     EiffelScan_tScanAttribute Bit_sequence1;
  10028.     EiffelScan_tScanAttribute Manifest_string1;
  10029.   ParserMEY_tParsAttribute Number_constant1;
  10030.   ParserMEY_tParsAttribute Boolean_constant1;
  10031.   xxtUnion xxUnion;
  10032.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10033.   for (;;) {
  10034.     switch (xxToken) {
  10035.     case 56 /* false */ :; 
  10036.     case 90 /* true */ :; 
  10037.       xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  10038. /* line 1034 "eiffel_mey.ell" */
  10039.  Manifest_constant0->Tree = Boolean_constant1.Tree;                     
  10040.       goto xx47;
  10041.     case 1 /* Character_constant */ :; 
  10042.       Character_constant1 =       EiffelScan_Attribute;
  10043.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10044. /* line 1035 "eiffel_mey.ell" */
  10045.  Manifest_constant0->Tree = mCh(Character_constant1.Char, Character_constant1.Position);
  10046.       goto xx47;
  10047.     case 3 /* Integer */ :; 
  10048.     case 4 /* Real */ :; 
  10049.     case 7 /* ';' */ :; 
  10050.     case 8 /* ',' */ :; 
  10051.     case 11 /* '!' */ :; 
  10052.     case 18 /* ')' */ :; 
  10053.     case 20 /* ']' */ :; 
  10054.     case 29 /* plus */ :; 
  10055.     case 30 /* minus */ :; 
  10056.     case 42 /* 'class' */ :; 
  10057.     case 46 /* deferred */ :; 
  10058.     case 47 /* do */ :; 
  10059.     case 51 /* 'end' */ :; 
  10060.     case 53 /* expanded */ :; 
  10061.     case 55 /* 'external' */ :; 
  10062.     case 57 /* 'feature' */ :; 
  10063.     case 59 /* 'frozen' */ :; 
  10064.     case 63 /* infix */ :; 
  10065.     case 67 /* 'invariant' */ :; 
  10066.     case 68 /* 'is' */ :; 
  10067.     case 75 /* once */ :; 
  10068.     case 77 /* prefix */ :; 
  10069.     case 106 /* Id */ :; 
  10070.       xxUnion.xxLocalRecoverySet = 0; yyNumber_constant (& Number_constant1, & xxUnion); /*  */
  10071. /* line 1036 "eiffel_mey.ell" */
  10072.  Manifest_constant0->Tree = Number_constant1.Tree;                     
  10073.       goto xx47;
  10074.     case 5 /* Manifest_string */ :; 
  10075.       Manifest_string1 =       EiffelScan_Attribute;
  10076.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10077. /* line 1037 "eiffel_mey.ell" */
  10078.  Manifest_constant0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position);
  10079.       goto xx47;
  10080.     case 2 /* Bit_sequence */ :; 
  10081.       Bit_sequence1 =       EiffelScan_Attribute;
  10082.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10083. /* line 1038 "eiffel_mey.ell" */
  10084.  Manifest_constant0->Tree = mBitseq(Bit_sequence1.StringRef, Bit_sequence1.Position);    
  10085.       goto xx47;
  10086.     case 6:;
  10087.     case 9:;
  10088.     case 10:;
  10089.     case 12:;
  10090.     case 13:;
  10091.     case 14:;
  10092.     case 15:;
  10093.     case 16:;
  10094.     case 17:;
  10095.     case 19:;
  10096.     case 21:;
  10097.     case 22:;
  10098.     case 23:;
  10099.     case 24:;
  10100.     case 25:;
  10101.     case 26:;
  10102.     case 27:;
  10103.     case 28:;
  10104.     case 31:;
  10105.     case 32:;
  10106.     case 33:;
  10107.     case 34:;
  10108.     case 35:;
  10109.     case 36:;
  10110.     case 37:;
  10111.     case 38:;
  10112.     case 39:;
  10113.     case 40:;
  10114.     case 41:;
  10115.     case 43:;
  10116.     case 44:;
  10117.     case 45:;
  10118.     case 48:;
  10119.     case 49:;
  10120.     case 50:;
  10121.     case 52:;
  10122.     case 54:;
  10123.     case 58:;
  10124.     case 60:;
  10125.     case 61:;
  10126.     case 62:;
  10127.     case 64:;
  10128.     case 65:;
  10129.     case 66:;
  10130.     case 69:;
  10131.     case 70:;
  10132.     case 71:;
  10133.     case 72:;
  10134.     case 73:;
  10135.     case 74:;
  10136.     case 76:;
  10137.     case 78:;
  10138.     case 79:;
  10139.     case 80:;
  10140.     case 81:;
  10141.     case 82:;
  10142.     case 83:;
  10143.     case 84:;
  10144.     case 85:;
  10145.     case 86:;
  10146.     case 87:;
  10147.     case 88:;
  10148.     case 89:;
  10149.     case 91:;
  10150.     case 92:;
  10151.     case 93:;
  10152.     case 94:;
  10153.     case 95:;
  10154.     case 96:;
  10155.     case 97:;
  10156.     case 98:;
  10157.     case 99:;
  10158.     case 100:;
  10159.     case 101:;
  10160.     case 102:;
  10161.     case 103:;
  10162.     case 104:;
  10163.     case 105:;
  10164.     default:
  10165.       if (xxIsRepairMode) {
  10166.         xxUnion.xxLocalRecoverySet = 0; yyBoolean_constant (& Boolean_constant1, & xxUnion); /*  */
  10167. /* line 1034 "eiffel_mey.ell" */
  10168.  Manifest_constant0->Tree = Boolean_constant1.Tree;                     
  10169.         goto xx47;
  10170.       }
  10171. xxUnexpected (221, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string plus minus false true */
  10172.     }
  10173.   }
  10174.   xx47:;
  10175. }
  10176.  
  10177. static void yyNumber_constant
  10178. # if defined __STDC__ | defined __cplusplus
  10179. (ParserMEY_tParsAttribute * Number_constant0, xxtUnionPtr xxGlobalRecoverySet)
  10180. # else
  10181. (Number_constant0, xxGlobalRecoverySet)
  10182. ParserMEY_tParsAttribute    * Number_constant0;
  10183. xxtUnionPtr    xxGlobalRecoverySet;
  10184. # endif
  10185. {
  10186.     EiffelScan_tScanAttribute Integer1;
  10187.     EiffelScan_tScanAttribute Real1;
  10188.   ParserMEY_tParsAttribute Sign1;
  10189.   xxtUnion xxUnion;
  10190.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10191.   xxUnion.xxLocalRecoverySet = 222; yySign (& Sign1, & xxUnion); /*  Integer Real */
  10192.   for (;;) {
  10193.     switch (xxToken) {
  10194.     case 3 /* Integer */ :; 
  10195.       Integer1 =       EiffelScan_Attribute;
  10196.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10197. /* line 1044 "eiffel_mey.ell" */
  10198.  Number_constant0->Tree = mInt(Sign1.Tree, Integer1.Int, Integer1.Position);           
  10199.       goto xx48;
  10200.     case 4 /* Real */ :; 
  10201.       Real1 =       EiffelScan_Attribute;
  10202.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10203. /* line 1045 "eiffel_mey.ell" */
  10204.  Number_constant0->Tree = mReal(Sign1.Tree, Real1.Real, Real1.Position);               
  10205.       goto xx48;
  10206.     default:
  10207.       if (xxIsRepairMode) {
  10208.         if (xxToken != 3 /* Integer */)
  10209.           xxRecoveryTerminal (3, 213, xxGlobalRecoverySet, & Integer1); /*  Integer */
  10210.         else {
  10211.           Integer1 =         EiffelScan_Attribute;
  10212.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10213.         }
  10214. /* line 1044 "eiffel_mey.ell" */
  10215.  Number_constant0->Tree = mInt(Sign1.Tree, Integer1.Int, Integer1.Position);           
  10216.         goto xx48;
  10217.       }
  10218.       xxExpected (222, 222, xxGlobalRecoverySet); /*  Integer Real /  Integer Real */
  10219.     }
  10220.   }
  10221.   xx48:;
  10222. }
  10223.  
  10224. static void yySign
  10225. # if defined __STDC__ | defined __cplusplus
  10226. (ParserMEY_tParsAttribute * Sign0, xxtUnionPtr xxGlobalRecoverySet)
  10227. # else
  10228. (Sign0, xxGlobalRecoverySet)
  10229. ParserMEY_tParsAttribute    * Sign0;
  10230. xxtUnionPtr    xxGlobalRecoverySet;
  10231. # endif
  10232. {
  10233.     EiffelScan_tScanAttribute plus1;
  10234.     EiffelScan_tScanAttribute minus1;
  10235. /* line 1048 "eiffel_mey.ell" */
  10236.  Sign0->Tree = mOper(NoPosition, VOID);                                                  
  10237.   for (;;) {
  10238.     if ((xxVerticalSet [xxToken + 864] & 1 << 1 /*  plus minus */)) {
  10239.       if ((xxToken == 29 /* plus */)) {
  10240.         plus1 =         EiffelScan_Attribute;
  10241.         xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10242. /* line 1049 "eiffel_mey.ell" */
  10243.  Sign0->Tree = mOper(plus1.Position, PLUS);                                            
  10244.       } else {
  10245.         minus1 =         EiffelScan_Attribute;
  10246.         xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10247. /* line 1050 "eiffel_mey.ell" */
  10248.  Sign0->Tree = mOper(minus1.Position, MINUS);                                          
  10249.       }
  10250.       break;
  10251.     } else if ((xxVerticalSet [xxToken + 864] & 1 << 2 /*  Integer Real */) || xxIsRepairMode) break;
  10252.     xxExpected (223, 223, xxGlobalRecoverySet); /*  plus minus /  plus minus */
  10253.   }
  10254. }
  10255.  
  10256. static void yyBoolean_constant
  10257. # if defined __STDC__ | defined __cplusplus
  10258. (ParserMEY_tParsAttribute * Boolean_constant0, xxtUnionPtr xxGlobalRecoverySet)
  10259. # else
  10260. (Boolean_constant0, xxGlobalRecoverySet)
  10261. ParserMEY_tParsAttribute    * Boolean_constant0;
  10262. xxtUnionPtr    xxGlobalRecoverySet;
  10263. # endif
  10264. {
  10265.     EiffelScan_tScanAttribute false1;
  10266.     EiffelScan_tScanAttribute true1;
  10267.   for (;;) {
  10268.     switch (xxToken) {
  10269.     case 90 /* true */ :; 
  10270.       true1 =       EiffelScan_Attribute;
  10271.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10272. /* line 1058 "eiffel_mey.ell" */
  10273.  Boolean_constant0->Tree = mTrue(true1.Position);                     
  10274.       goto xx49;
  10275.     case 56 /* false */ :; 
  10276.       false1 =       EiffelScan_Attribute;
  10277.       xxToken =       EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10278. /* line 1059 "eiffel_mey.ell" */
  10279.  Boolean_constant0->Tree = mFalse(false1.Position);                     
  10280.       goto xx49;
  10281.     case 57:;
  10282.     case 58:;
  10283.     case 59:;
  10284.     case 60:;
  10285.     case 61:;
  10286.     case 62:;
  10287.     case 63:;
  10288.     case 64:;
  10289.     case 65:;
  10290.     case 66:;
  10291.     case 67:;
  10292.     case 68:;
  10293.     case 69:;
  10294.     case 70:;
  10295.     case 71:;
  10296.     case 72:;
  10297.     case 73:;
  10298.     case 74:;
  10299.     case 75:;
  10300.     case 76:;
  10301.     case 77:;
  10302.     case 78:;
  10303.     case 79:;
  10304.     case 80:;
  10305.     case 81:;
  10306.     case 82:;
  10307.     case 83:;
  10308.     case 84:;
  10309.     case 85:;
  10310.     case 86:;
  10311.     case 87:;
  10312.     case 88:;
  10313.     case 89:;
  10314.     default:
  10315.       if (xxIsRepairMode) {
  10316.         if (xxToken != 90 /* true */)
  10317.           xxRecoveryTerminal (90, 224, xxGlobalRecoverySet, & true1); /*  true */
  10318.         else {
  10319.           true1 =         EiffelScan_Attribute;
  10320.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10321.         }
  10322. /* line 1058 "eiffel_mey.ell" */
  10323.  Boolean_constant0->Tree = mTrue(true1.Position);                     
  10324.         goto xx49;
  10325.       }
  10326.       xxExpected (226, 226, xxGlobalRecoverySet); /*  false true /  false true */
  10327.     }
  10328.   }
  10329.   xx49:;
  10330. }
  10331.  
  10332. static void yyBit_constant
  10333. # if defined __STDC__ | defined __cplusplus
  10334. (ParserMEY_tParsAttribute * Bit_constant0, xxtUnionPtr xxGlobalRecoverySet)
  10335. # else
  10336. (Bit_constant0, xxGlobalRecoverySet)
  10337. ParserMEY_tParsAttribute    * Bit_constant0;
  10338. xxtUnionPtr    xxGlobalRecoverySet;
  10339. # endif
  10340. {
  10341.     EiffelScan_tScanAttribute Bit_sequence1;
  10342.   if (xxToken != 2 /* Bit_sequence */)
  10343.     xxRecoveryTerminal (2, 215, xxGlobalRecoverySet, & Bit_sequence1); /*  Bit_sequence */
  10344.   else {
  10345.     Bit_sequence1 =   EiffelScan_Attribute;
  10346.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10347.   }
  10348. /* line 1066 "eiffel_mey.ell" */
  10349.  Bit_constant0->Tree = mBitseq(Bit_sequence1.StringRef, Bit_sequence1.Position);    
  10350. }
  10351.  
  10352. static void yyManifest_array
  10353. # if defined __STDC__ | defined __cplusplus
  10354. (ParserMEY_tParsAttribute * Manifest_array0, xxtUnionPtr xxGlobalRecoverySet)
  10355. # else
  10356. (Manifest_array0, xxGlobalRecoverySet)
  10357. ParserMEY_tParsAttribute    * Manifest_array0;
  10358. xxtUnionPtr    xxGlobalRecoverySet;
  10359. # endif
  10360. {
  10361.   ParserMEY_tParsAttribute Expression_list1;
  10362.   xxtUnion xxUnion;
  10363.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10364.   if (xxToken != 23 /* '<<' */)
  10365.     xxRecoveryLiteral (23, 227, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' '>>' plus minus Current false 'old' Result 'strip' true not Id */
  10366.   else {
  10367.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10368.   }
  10369.   xxUnion.xxLocalRecoverySet = 228; yyExpression_list (& Expression_list1, & xxUnion); /*  '>>' */
  10370.   if (xxToken != 24 /* '>>' */)
  10371.     xxRecoveryLiteral (24, 228, xxGlobalRecoverySet); /*  '>>' */
  10372.   else {
  10373.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10374.   }
  10375. /* line 1071 "eiffel_mey.ell" */
  10376.  Manifest_array0->Tree = ReverseTree(Expression_list1.Tree);            
  10377. }
  10378.  
  10379. static void yyExpression_list
  10380. # if defined __STDC__ | defined __cplusplus
  10381. (ParserMEY_tParsAttribute * Expression_list0, xxtUnionPtr xxGlobalRecoverySet)
  10382. # else
  10383. (Expression_list0, xxGlobalRecoverySet)
  10384. ParserMEY_tParsAttribute    * Expression_list0;
  10385. xxtUnionPtr    xxGlobalRecoverySet;
  10386. # endif
  10387. {
  10388.   ParserMEY_tParsAttribute Expression1;
  10389.   xxtUnion xxUnion;
  10390.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10391. /* line 1073 "eiffel_mey.ell" */
  10392.  Expression_list0->Tree = mManifest_array0();                        
  10393.   for (;;) {
  10394.     if ((xxVerticalSet [xxToken + 648] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */)) {
  10395.       for (;;) {
  10396.         xxUnion.xxLocalRecoverySet = 16; yyExpression (& Expression1, & xxUnion); /*  ',' */
  10397. /* line 1074 "eiffel_mey.ell" */
  10398.  Expression_list0->Tree = mManifest_array1(Expression1.Tree, Expression_list0->Tree);     
  10399.         if (! ((xxToken == 8 /* ',' */))) {
  10400.           if ((xxToken == 24 /* '>>' */)) break;
  10401.           xxExpected (16, 229, xxGlobalRecoverySet); /*  ',' /  Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  10402.           if (! ((xxToken == 8 /* ',' */) || (xxVerticalSet [xxToken + 648] & 1 << 5 /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */))) break;
  10403.         }
  10404.         if (xxToken != 8 /* ',' */)
  10405.           xxRecoveryLiteral (8, 229, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op ',' '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  10406.         else {
  10407.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10408.         }
  10409.       }
  10410.       break;
  10411.     } else if ((xxToken == 24 /* '>>' */) || xxIsRepairMode) break;
  10412.     xxExpected (128, 128, xxGlobalRecoverySet); /*  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id /  Character_constant Bit_sequence Integer Real Manifest_string Free_op '(' '<<' plus minus Current false 'old' Result 'strip' true not Id */
  10413.   }
  10414. }
  10415.  
  10416. static void yyStrip
  10417. # if defined __STDC__ | defined __cplusplus
  10418. (ParserMEY_tParsAttribute * Strip0, xxtUnionPtr xxGlobalRecoverySet)
  10419. # else
  10420. (Strip0, xxGlobalRecoverySet)
  10421. ParserMEY_tParsAttribute    * Strip0;
  10422. xxtUnionPtr    xxGlobalRecoverySet;
  10423. # endif
  10424. {
  10425.   ParserMEY_tParsAttribute Attribute_list1;
  10426.   xxtUnion xxUnion;
  10427.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10428.   if (xxToken != 88 /* 'strip' */)
  10429.     xxRecoveryLiteral (88, 230, xxGlobalRecoverySet); /*  '(' ')' 'strip' Id */
  10430.   else {
  10431.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10432.   }
  10433.   if (xxToken != 17 /* '(' */)
  10434.     xxRecoveryLiteral (17, 82, xxGlobalRecoverySet); /*  '(' ')' Id */
  10435.   else {
  10436.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10437.   }
  10438.   xxUnion.xxLocalRecoverySet = 83; yyAttribute_list (& Attribute_list1, & xxUnion); /*  ')' */
  10439.   if (xxToken != 18 /* ')' */)
  10440.     xxRecoveryLiteral (18, 83, xxGlobalRecoverySet); /*  ')' */
  10441.   else {
  10442.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10443.   }
  10444. /* line 1081 "eiffel_mey.ell" */
  10445.  Strip0->Tree = mStrip(Attribute_list1.Tree);                    
  10446. }
  10447.  
  10448. static void yyAttribute_list
  10449. # if defined __STDC__ | defined __cplusplus
  10450. (ParserMEY_tParsAttribute * Attribute_list0, xxtUnionPtr xxGlobalRecoverySet)
  10451. # else
  10452. (Attribute_list0, xxGlobalRecoverySet)
  10453. ParserMEY_tParsAttribute    * Attribute_list0;
  10454. xxtUnionPtr    xxGlobalRecoverySet;
  10455. # endif
  10456. {
  10457.   ParserMEY_tParsAttribute Identifier1;
  10458.   xxtUnion xxUnion;
  10459.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10460. /* line 1083 "eiffel_mey.ell" */
  10461.  Attribute_list0->Tree = mnolist();                            
  10462.   for (;;) {
  10463.     if ((xxToken == 106 /* Id */)) {
  10464.       for (;;) {
  10465.         xxUnion.xxLocalRecoverySet = 16; yyIdentifier (& Identifier1, & xxUnion); /*  ',' */
  10466. /* line 1084 "eiffel_mey.ell" */
  10467.  Attribute_list0->Tree = mlist(Identifier1.Tree, Attribute_list0->Tree);         
  10468.         if (! ((xxToken == 8 /* ',' */))) {
  10469.           if ((xxToken == 18 /* ')' */)) break;
  10470.           xxExpected (16, 87, xxGlobalRecoverySet); /*  ',' /  ',' Id */
  10471.           if (! ((xxToken == 8 /* ',' */) || (xxToken == 106 /* Id */))) break;
  10472.         }
  10473.         if (xxToken != 8 /* ',' */)
  10474.           xxRecoveryLiteral (8, 87, xxGlobalRecoverySet); /*  ',' Id */
  10475.         else {
  10476.           xxToken =         EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10477.         }
  10478.       }
  10479.       break;
  10480.     } else if ((xxToken == 18 /* ')' */) || xxIsRepairMode) break;
  10481.     xxExpected (84, 84, xxGlobalRecoverySet); /*  Id /  Id */
  10482.   }
  10483. }
  10484.  
  10485. static void yyExternal
  10486. # if defined __STDC__ | defined __cplusplus
  10487. (ParserMEY_tParsAttribute * External0, xxtUnionPtr xxGlobalRecoverySet)
  10488. # else
  10489. (External0, xxGlobalRecoverySet)
  10490. ParserMEY_tParsAttribute    * External0;
  10491. xxtUnionPtr    xxGlobalRecoverySet;
  10492. # endif
  10493. {
  10494.   ParserMEY_tParsAttribute Language_name1;
  10495.   ParserMEY_tParsAttribute External_name1;
  10496.   xxtUnion xxUnion;
  10497.   xxUnion.xxGlobalRecoverySet = xxGlobalRecoverySet;
  10498.   if (xxToken != 55 /* 'external' */)
  10499.     xxRecoveryLiteral (55, 231, xxGlobalRecoverySet); /*  Manifest_string 'alias' 'external' */
  10500.   else {
  10501.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10502.   }
  10503.   xxUnion.xxLocalRecoverySet = 232; yyLanguage_name (& Language_name1, & xxUnion); /*  'alias' */
  10504. /* line 1091 "eiffel_mey.ell" */
  10505.  External0->Tree = mExternal( Language_name1.Tree, mString0());            
  10506.   for (;;) {
  10507.     if ((xxToken == 34 /* 'alias' */)) {
  10508.       xxUnion.xxLocalRecoverySet = 0; yyExternal_name (& External_name1, & xxUnion); /*  */
  10509. /* line 1092 "eiffel_mey.ell" */
  10510.  External0->Tree->External.Lang2 = External_name1.Tree;                
  10511.       break;
  10512.     } else if ((xxVerticalSet [xxToken + 864] & 1 << 3 /*  'end' 'ensure' 'rescue' */) || xxIsRepairMode) break;
  10513.     xxExpected (232, 232, xxGlobalRecoverySet); /*  'alias' /  'alias' */
  10514.   }
  10515. }
  10516.  
  10517. static void yyLanguage_name
  10518. # if defined __STDC__ | defined __cplusplus
  10519. (ParserMEY_tParsAttribute * Language_name0, xxtUnionPtr xxGlobalRecoverySet)
  10520. # else
  10521. (Language_name0, xxGlobalRecoverySet)
  10522. ParserMEY_tParsAttribute    * Language_name0;
  10523. xxtUnionPtr    xxGlobalRecoverySet;
  10524. # endif
  10525. {
  10526.     EiffelScan_tScanAttribute Manifest_string1;
  10527.   if (xxToken != 5 /* Manifest_string */)
  10528.     xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string */
  10529.   else {
  10530.     Manifest_string1 =   EiffelScan_Attribute;
  10531.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10532.   }
  10533. /* line 1095 "eiffel_mey.ell" */
  10534.  Language_name0->Tree = mString(Manifest_string1.StringRef, Manifest_string1.Position);
  10535. }
  10536.  
  10537. static void yyExternal_name
  10538. # if defined __STDC__ | defined __cplusplus
  10539. (ParserMEY_tParsAttribute * External_name0, xxtUnionPtr xxGlobalRecoverySet)
  10540. # else
  10541. (External_name0, xxGlobalRecoverySet)
  10542. ParserMEY_tParsAttribute    * External_name0;
  10543. xxtUnionPtr    xxGlobalRecoverySet;
  10544. # endif
  10545. {
  10546.     EiffelScan_tScanAttribute Manifest_string1;
  10547.   if (xxToken != 34 /* 'alias' */)
  10548.     xxRecoveryLiteral (34, 233, xxGlobalRecoverySet); /*  Manifest_string 'alias' */
  10549.   else {
  10550.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10551.   }
  10552.   if (xxToken != 5 /* Manifest_string */)
  10553.     xxRecoveryTerminal (5, 24, xxGlobalRecoverySet, & Manifest_string1); /*  Manifest_string */
  10554.   else {
  10555.     Manifest_string1 =   EiffelScan_Attribute;
  10556.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10557.   }
  10558. /* line 1098 "eiffel_mey.ell" */
  10559.  External_name0->Tree =  mString(Manifest_string1.StringRef, Manifest_string1.Position); 
  10560. }
  10561.  
  10562. static void yyIdentifier
  10563. # if defined __STDC__ | defined __cplusplus
  10564. (ParserMEY_tParsAttribute * Identifier0, xxtUnionPtr xxGlobalRecoverySet)
  10565. # else
  10566. (Identifier0, xxGlobalRecoverySet)
  10567. ParserMEY_tParsAttribute    * Identifier0;
  10568. xxtUnionPtr    xxGlobalRecoverySet;
  10569. # endif
  10570. {
  10571.     EiffelScan_tScanAttribute Id1;
  10572.   if (xxToken != 106 /* Id */)
  10573.     xxRecoveryTerminal (106, 84, xxGlobalRecoverySet, & Id1); /*  Id */
  10574.   else {
  10575.     Id1 =   EiffelScan_Attribute;
  10576.     xxToken =   EiffelScan_GetToken (); xxIsRepairMode = xxfalse;
  10577.   }
  10578. /* line 1102 "eiffel_mey.ell" */
  10579.  Identifier0->Tree= mId(Id1.Ident, Id1.Position);                     
  10580. }
  10581.  
  10582.